BeautifulSoup 예제2 음원사이트 Genie 차트 순위 긁어오기
2018. 1. 24. 18:59ㆍPython/Programming
먼저 Genie 사이트에 들어가서 각 차트 별 노래들을 어떻게 뽑아내야 할 지 보겠습니다
tbody 태그안에 tr태그마다 차트 1순위부터 50위 까지 있음을 확인할 수 있었습니다
tr태그이면서 class명이 list 인 태그를 검색하여 해당 내용을 긁어오겠습니다
[ Python Code ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import urllib.request from bs4 import BeautifulSoup # 1 ~ 50위 url = "https://genie.co.kr/chart/top100" req = urllib.request.Request(url) sourcecode = urllib.request.urlopen(req).read() soup = BeautifulSoup(sourcecode,'html.parser') index = 1 chart = soup.find_all("tr",class_="list") # selector : body-content > div.newest-list > div > table > tbody > tr.list.rank-1 for rank in chart: print("###### %d위 #####" % (index) ) song = rank.find("a",class_="title").get_text()[2:] #song = song.replace("",'') print("곡 명 : %s" % (song)) print("가수명 : %s" % (rank.find("a",class_="artist").get_text()) ) index += 1 # 51 ~ 100위 url = "https://genie.co.kr/chart/top100?ditc=D&ymd=20180124&hh=17&rtm=Y&pg=2" req = urllib.request.Request(url) sourcecode = urllib.request.urlopen(req).read() soup = BeautifulSoup(sourcecode,'html.parser') chart = soup.find_all("tr",class_="list") # selector : body-content > div.newest-list > div > table > tbody > tr.list.rank-1 for rank in chart: print("###### %d위 #####" % (index) ) song = rank.find("a",class_="title").get_text()[2:] # 노래 이름에 ♪가 포함되어 있어서 [] 을 사용해서 한글만 출력 print("곡 명 : %s" % (song)) print("가수명 : %s" % (rank.find("a",class_="artist").get_text()) ) index += 1 | cs |
[ 실행 결과 ]
'Python > Programming' 카테고리의 다른 글
SW Expert Acadamy: Python (0) | 2020.02.13 |
---|---|
Python을 이용한 이미지 다운로드 ( urlretrieve ) (1) | 2018.01.24 |
BeautifulSoup 예제1 네이버 실시간 검색어 긁어오기 (0) | 2018.01.24 |
BeautifulSoup (2) 검색 메서드 (0) | 2018.01.18 |
BeatifulSoup (1) 기본 메서드 (0) | 2018.01.16 |