본문 바로가기

python

python/파이썬/웹크롤링/웹크롤러/crawling

크롤링(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