크롤링(crawling) 이란?
상에 존재하는 자료를 수집하는 작업을 말한다. 페이지의 HTML를 가져와 HTML/CSS 등 을 파싱한 후, 필요한 데이터만 추출하는 기법이다.
실시간 음악 차트를 보여주는 음원 사이트인 '벅스 뮤직'의 실시간 음원 차트 100 순위를 파이썬을 이용하여, 크롤링해보자. requests 와 BeautifulSoup 라이브러리를 사용할 것이다.
1
2
3
|
import requests
from bs4 import BeautifulSoup
from datetime import datetime as dt
|
cs |
1
2
3
4
|
request = requests.get('https://music.bugs.co.kr/chart')
print(request)
html = request.text
print(html)t
|
cs |
requests 라이브러리를 사용하여, 벅스 차트가 보이는 홈페이지의 주소를 받아, html 를 파싱하였다. 아래는 BeautifulSoup 를 사용한 것이다.
1
|
soup = BeautifulSoup(html, 'html.parser')
|
cs |
1
2
3
4
5
6
7
|
songs = soup.findAll('p', {'class' : 'title'})
artists = soup.findAll('p', {'class' : 'artist'})
for i in range(100):
print('{}위 : {} {}'.format(i + 1, songs[i].text.strip(), artists[i].text.strip()))
f.write('{}위 : {} {}'.format(i + 1, songs[i].text, artists[i].text))
|
cs |
다음과 같이 출력된다.
1위 : Psycho Red Velvet (레드벨벳)
2위 : METEOR 창모(CHANGMO)
3위 : Blueming 아이유(IU)
4위 : Square (2017) 백예린
5위 : 다시는 사랑하지 않고, 이별에 아파하기 싫어 백지영
6위 : HIP 마마무(Mamamoo)
7위 : Thumbs Up 모모랜드(MOMOLAND)
8위 : 마음이 말하는 행복 (Happiness) (Feat.이라온) 마크툽(Maktub)
9위 : 아마두 (feat.우원재, 김효은, 넉살, Huckleberry P) 염따
......
'python' 카테고리의 다른 글
python/파이썬/class/ (0) | 2019.12.30 |
---|---|
파이썬/python/마방진 문제 (0) | 2019.12.27 |
python/파이썬/지그재그정렬 (0) | 2019.12.27 |
파이썬/python/달팽이 배열 (1) | 2019.12.27 |
파이썬/python/주민등록번호검증문제 (0) | 2019.12.26 |