지니뮤직 크롤러 만들기

먼저 구글에서 삽질하면서 코드를 짜보았다


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'}
url = 'https://www.genie.co.kr/chart/top200'
resp = requests.get(url, headers = headers)
soup = BeautifulSoup(resp.text, 'html.parser')

song = soup.find("a",{"class":"title ellipsis"}).text

print(song)

하나씩 설명하자면 

headers : 그냥 지니웹사이트에서 크롤링을 시도하니까 크롤링이 차단되었다는 문구가떠서 구글링을해서 찾아보니

유저정보를 입력하면 해결된다해서 입력해주고 url을 get할때 인자로 넘겨주었더니 해결되었다

url : 지니뮤직 실시간차트 200위 페이지주소를 입력해주었다

resp : url과 headers를 넣어주어서 웹페이지를 긁어왔다

soup : Beautifulsoup를 이용해 html소스를 text로 파이썬 객체로 바꾸어주고 python에 내장된 html.parser를 이용할것이라고 입력해줌

song : find를 이용해서 곡제목을 저장

실행결과:

문제점 :

1위곡 하나만 크롤링된다는점

앞에 공백이 너무많다는점(지니웹사이트 html코드 자체에 곡제목앞에 공백이많음)

 

해결방법:

아까 삽질하면서 찾아본결과 1위곡 하나만 크롤링되는것은 for문을 이용해서 해결해야할듯하고

앞에 공백이많은것은 또다시 삽질하면서 공백을 없애주는코드를 작성해야할듯

 

Junyoung.dev