일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BeautifulSoup
- java 컬렉션 프레임워크
- 파이썬딕셔너리
- 북리뷰
- 파이썬람다함수
- 이것이코딩테스트다
- 파이선
- 장고 sqlite
- 파이썬가상환경
- 포토샵기초
- 컬렉션프레임워크
- git.exe
- java 예외
- 파이썬예외
- hashpmap
- 파이참github연결
- 파이썬크롤링
- 파이썬크롤링설치
- 파이썬
- 파이썬 github
- 파이썬try
- 알고리즘공부
- 파이썬웹크롤링
- Java
- 파이썬강제예외
- 파이썬 sqliite
- Django sqlite3
- 이터레이터 제네레이터
- 파이참가상환경
- 웹크롤링
- Today
- Total
박미미의 지식에서 쌓는 즐거움
파이썬:: 웹크롤링 해보기 (일간 노래순위 가져와보기) 본문
html 페이지 전체를 크롤링하는것까지 배웠다. (하단링크 참고)
파이썬:: 웹크롤링 준비하기(1편) |
그러면 이제 특정페이지에 내가 원하는 데이터를 가져와보자.
지금 예로 들건 '네이버 뮤직' 에서 일간 top100 하는 노래 제목, 가수 이름 등을 알기 위한 작업이다.
(https://music.naver.com/listen/top100.nhn?domain=TOTAL&duration=1d&page=1)
f12를 눌러 html 코드를 확인해보자.
난 top100의 노래제목을 가져오고 싶다. 노래제목 부분의 <td>를 확인해서 한 행을 보자.
내가 필요한 부분을 아래 소스.
<td class="name"> <a href="/album/index.nhn?albumId=3070370" class="thumb pht36 NPI=a:image,r:1,i:3070370"> <img src="https://musicmeta-phinf.pstatic.net/album/003/070/3070370.jpg?type=r32Fll&v=20190618175903" onerror="this.onerror=null;this.src='https://musicmeta-phinf.pstatic.net/album/000/000/0.jpg?type=r32Fll&v=20190618175903';" width="32" height="32" alt="술이 문제야" title="술이 문제야"> <span class="ellipsis">술이 문제야</span> </a> </td> <td class="_artist artist no_ell2"> <a href="javascript:void(0);" title="" alt="" class="NPI=a:layerbtn,r:1">장혜진</a> </td> |
html코드가 조금 길다고 당황하지 말고 내가 필요한부분, 주황색으로 표시된 부분만 확인하면 됩니다.
#웹서버에 요청 import urllib.request #검색에 요청 from bs4 import BeautifulSoup data = urllib.request.urlopen("https://music.naver.com/listen/top100.nhn?domain=TOTAL&duration=1d&page=1") soup = BeautifulSoup(data, "html.parser") #html을 가져와서 soup 이라는 객체에 저장한다. songtitle = soup.find_all("td", class_="name") #<td class="name"> 부분을 찾는다 title = songtitle[0].find("span").text #<td class="name"> 부분 중 <span class="ellipsis">술이 문제야</span> 부분찾기 for item in songtitle: print( item.text.strip() ) |
결과
술이 문제야 헤어져줘서 고마워 Snapping 너에게 못했던 내 마지막 말은 Speechless (Full) 사랑에 연습이 있었다면 (Prod. 2soo) 솔직하게 말해서 나 2002 작은 것들을 위한 시 (Boy With Luv) (Feat. Halsey) bad guy A Whole New World FANCY .. . |
여기서의 코드 한계가 있다.
한 페이지에 노래 순위 1~50위까지 되어있어서 51~100위는 가져오기 힘들다는 것.
이걸 다음 포스트에서 정리해보겠다.
'IT 공부 > 파이썬 공부' 카테고리의 다른 글
파이썬:: Pycharm + Python virtualenv 설치 (0) | 2019.07.23 |
---|---|
[Pycharm + mysql] MYSQL 설치하기 (0) | 2019.07.22 |
파이썬:: 웹크롤링 준비하기 (0) | 2019.07.12 |
파이선:: 예외처리 (try, 강제예외) (0) | 2019.07.11 |
파이썬:: 사전(Dictionary)의 개념 (0) | 2019.07.10 |