상세 컨텐츠

본문 제목

지니뮤직 크롤링하기

CS전공 지식/웹서비스 이해하기

by 본투비곰손 2022. 12. 5. 22:10

본문

728x90
import requests
from bs4 import BeautifulSoup

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?ditc=M&rtm=N&ymd=20210701',headers=headers)

soup = BeautifulSoup(data.text, 'html.parser')

패키지를 import 하여 한다.

크롤링 원하는 목록을 선택하고 개발자 도구를 사용하여 태그를 선택 복사한다.

import requests
from bs4 import BeautifulSoup

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?ditc=M&rtm=N&ymd=20210701',headers=headers)

soup = BeautifulSoup(data.text, 'html.parser')
print(soup)

#body-content > div.newest-list > div > table > tbody > tr:nth-child(1) > td.number
#body-content > div.newest-list > div > table > tbody > tr:nth-child(2) > td.info > a.title.ellipsis
trs = soup.select('#body-content > div.newest-list > div > table > tbody > tr')
선택된 태그를 복사해서 패턴을 확인하고 추출할 값을 반복문을 사용하여 변수에 배열을 담는다.
for tr in trs:
    rank = tr.select_one('td.number').text[0:2].strip() 
    title = tr.select_one('td.info > a.title.ellipsis').text.strip()
    artist = tr.select_one('td.info > a.artist.ellipsis').text.strip()
#.text[0:2] 앞에서 두자리 문자만 추출하기 .strip() 앞뒤 공백은 없애기로한다.
    print(rank, title, artist)

 

728x90

관련글 더보기