초기 계획)
E : Beautifulsoup 사용하여 멜론 차트 100 정보를 가져오고, 원하는 형태로 정제 후 mysql DB에 저장
T : 전처리 및 원하는 형태로 변환
L : Msql DB에 저장
1. bs4를 사용하여 원하는 정보를 가져오자
필요한 것
해당 홈페이지 URL : https://www.melon.com/chart/index.htm
필요한 정보 : 가수, 노래 제목, 앨범, 좋아요 수
from bs4 import BeautifulSoup
import requests
headers = {
"User-Agent": "***"
}
r = requests.get("https://www.melon.com/chart/index.htm", headers=headers)
html = r.text
soup = BeautifulSoup(html, "html.parser")
list100 = soup.select(".lst50") + soup.select(".lst100")
for rank, list in enumerate(list100, 1):
print("순위 : ", rank)
print(list.select(".button_etc.like"))
※좋아요 수 데이터가 제대로 가져와지지 않는다. -
태그를 다르게 해서 시도해 보아도 달라지지 않는다. (시도 과정을 다 올리지는 않았지만 진짜 별짓을 다 해 보아도 좋아요 수가 가져와지지 않았다.ㅠㅠ)
대체 왜?
새로고침을 해 보니 좋아요 수는 실시간으로 가져오는 것 같다. 좋아요 수는 정적 페이지이와 관련있지 않을까?
------
Selenium은 좋아요 수를 가져올 수 있을까?
from selenium import webdriver
import time
url = "https://www.melon.com/chart/index.htm"
driver = webdriver.Chrome()
driver.get(url)
time.sleep(2)
html = driver.page_source
print(html)
와씨 다행히 가져와진다.
'ETL' 카테고리의 다른 글
#2. [Mini Project] 멜론 TOP100 + DB (ETL _ bs4 & Selenium) (0) | 2023.01.16 |
---|
댓글