웹크롤러는 다양한 사이트에서 데이터를 가져오고 최신으로 유지합니다. 지난번에 node.js환경에서 멜론차트 데이터를 가져오는 방법을 소개했었는데, 이번에는 파이썬으로 해 볼 예정입니다.

멜론 사이트 구조가 변경되어 제대로 작동하지 않습니다. 하단의 최종 코드는 작동되는 코드로 수정하였습니다. 설명은 빠른 시일 내에 수정하겠습니다.

Intro

node.js 로의 웹크롤링이 궁금하다면,
Node.js로 멜론 순위 차트 데이터 파싱 참고

파이썬의 requestsBeautifulSoup 모듈을 이용하여 진행합니다.

requests

requests 모듈은 파이썬에서 HTTP 요청을 할 수 있게 합니다.

requests 설치

python3 에서는

 

그 뒤에 파이썬 파일을 하나 만들어서 requests 모듈을 추가해 줍니다.
(http://docs.python-requests.org 참고)

그 뒤로 다음 코드들을 추가해 줍니다.

가끔 튕겨나는 현상이 있어서, header을 추가해줍니다 (2018.05.19 수정)

requests 모듈의 get() 메소드로 웹사이트에 http 요청을 하고 → html 텍스트를 저장합니다.

BeautifulSoup

이제 가져온 html 텍스트를 파싱합니다.
다시말해, 원하는 태그만 가져오고 그 태그 내의 문자열을 처리할 수 있습니다. 근데 그러기 위해서는 우선 파싱할 웹페이지가 어떻게 구성이 되어있는지 확인해야 합니다.
Chrome의 개발자도구에서 해당 웹사이트의 태그를 확인할 수 있습니다.

ellipsis rank01spana 에 곡정보

ellipsis rank02span 에 아티스트 정보가 있습니다.

이 태그를 쉽게 가져오는 법은

우클릭 → Copy → Copy selector

그리고 이렇게 입력해 줍니다. 이는 html에서 select 메소드가 가리키는 경로의 태그를 가져오는 것입니다.

 

출력

이제 원하는 정보를 가져왔으니, 출력하는 일만 남았습니다.

상위 10개의 목록을 출력하는 코드 입니다.

결과

 

최종 코드 (수정됨) 위 설명 수정 예정

 

댓글 남기기

Close Menu