스파르타 코딩클럽 웹 종합반 3주차 과제로 python bs4 라이브러리를 사용하여 지니음악의 실시간 인기 차트를 스크래핑 하였다. 또, 몽고 db와 robo 3T를 이용하여 긁어온 정보를 db로 쌓아주었다.
requests를 활용하여 사이트에 정보를 달라는 요청을 보내고, beautifulSoup을 활용하여 받아온 정보를 sorting 했다.
이후 pymongo를 활용하여 몽고db에 긁어온 실시간 차트 정보를 저장하였다.
아래는 사용한 코드!
import requests
from bs4 import BeautifulSoup
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get('https://www.genie.co.kr/chart/top200',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
trs = soup.select('#body-content > div.newest-list > div > table > tbody > tr')
for tr in trs:
rank_txt = tr.select_one('td.number').text
rank = rank_txt.split()[0]
title_txt = tr.select_one('td.info > a.title.ellipsis').text.strip()
if "19금" in title_txt:
title = title_txt.split()[1]
else:
title = title_txt
singer = tr.select_one('td.info > a.artist.ellipsis').text
doc = {
'rank': rank,
'title' : title,
'singer' : singer
}
db.music_chart.insert_one(doc)
'TIL(today i learned)' 카테고리의 다른 글
[JS] map, ternary (0) | 2022.08.29 |
---|---|
[project][unity c#] 칵테일 퍼즐게임 만들기 (0) | 2022.08.05 |
[project] 자바스크립트에서 Ajax와 jQuery 이용해보 (0) | 2022.05.29 |
[project] 상품판매 페이지 만들기 (html/css) (0) | 2022.05.28 |
[project] 웹 포트폴리오 JS 완주 (0) | 2022.05.28 |