파이썬으로 아주 쉽게 웹크롤링을 구현해보도록 하겠습니다.
*파이썬, 주피터노트북 설치가 안되어있다면 아래 url참고
파이썬을 통한 웹 크롤링
파이썬은 라이브러리를 사용해 아주 짧은 코드로 웹의 데이터를 긁어 올 수 있습니다.
테스트 케이스로 네이버 스포츠 메인화면 -> 댓글 많은 뉴스 -> 1위 기사 제목을 가져와 보도록 하겠습니다.
url : https://sports.news.naver.com/index.nhn
주피터 노트북 새파일을 하나 열어줍니다.
저는 슈퍼코딩 이름으로 하나 생성 했습니다.
아나콘다로 설치했다면 기본적인 크롤링 라이브러리는 확보가 되어 있는 상태입니다.
코드작성
●.웹 요청을 위한 requests 라이브러리를 import해줍니다.
●.크롤링할 대상 url인 https://sports.news.naver.com/index.nhn을 변수하나를 만들어 저장해줍니다.
●.request.get() 을 활용해 대상 url에 대해 요청을 진행합니다.
●.BeautifulSoup이라는 html, xml, json파싱 라이브러리를 하나 import해줍니다.
-from xxx import yy 의 뜻은 "xxx라이브러리의 yy함수를 import 해줘" 로 기억하시면됩니다.
-bs4.BeautifulSoup() 로 사용해야 하는 것을 BeautifulSoup()로 간단하게 사용하기 위함입니다.
●.BeautifulSoup() 를 활용해 아래 소스와 같이 파라미터를 채워 줍니다.
-BeautifulSoup(요청결과의 내용, '파싱할 대상 type(html, xml, json)' , 인코딩타입)
●.nhn_sports_main_list에 담긴 정보를 select 선택자를 통해 접근해봅니다.
-자바스크립트나 제이쿼리에서 html태그에 접근하는 방식과 동일하게 접근하면 됩니다.
크롬 개발자도구를 열어 원하는 정보의 위치에 태그를 확인합니다.
아래 이미지의 형광펜 영역을 확인해보면, 해당 문구가 위치하는 태그의 class , id정보들을 확인 할 수 있습니다.
해당 웹페이지에서 댓글많은뉴스1번을 가리키는 고유값인 id="mostCommentedNewsList" 와 그 하위 태그인 <li>태그에 class="best"를 활용해 접근하면 될 것 같네요.
●.태그 선택자를 활용해 select('#mostCommentedNewsList >.best') 접근해주면
해당 영역의 정보를 얻어 올 수 있습니다.
link_list 배열에서 최종적으로 목표했던 정보인 기사제목만 가져오면 되겠네요.
link_list[0].text 를 실행해보면 목표했던 댓글 많은 뉴스 1위 기사 제목을 가져오게 되었네요.
아래 10줄도 안되는 코드를 통해 웹페이지의 원하는 정보를 가져 올 수 있는 것을 확인했습니다.
이 코드를 응용하면 웹페이지의 다양한 데이터들을 가져올 수 있을 것 같네요.
주피터 노트북에서 바로 실행 가능한 코드 원본은 첨부파일 참고 부탁드립니다.
'python > 크롤링' 카테고리의 다른 글
[python] 파이썬 웹 크롤링 - 6 : 한국 피파랭킹 크롤링 (0) | 2019.11.12 |
---|---|
[python] 파이썬 웹 크롤링 - 5 : 네이트 판 톡커들의 선택 랭킹 (2) | 2019.11.12 |
[python] 파이썬 웹 크롤링 - 4 : 프리미어리그 전체 팀 순위 조회(Selenium, BeautifulSoup) (0) | 2019.10.10 |
[python] 파이썬 웹 크롤링 - 3 : 프리미어리그 팀 순위 (0) | 2019.10.10 |
[python] 파이썬 웹 크롤링 - 2 : 네이버 실시간 검색어 (0) | 2019.10.10 |
최근댓글