슈퍼코딩.ipynb
0.00MB

파이썬으로 아주 쉽게 웹크롤링을 구현해보도록 하겠습니다.

 

*파이썬, 주피터노트북 설치가 안되어있다면 아래 url참고

https://vmpo.tistory.com/entry/python-%EC%95%84%EB%82%98%EC%BD%98%EB%8B%A4anaconda-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0-%EC%9C%88%EB%8F%84%EC%9A%B0-10

 

[python] 아나콘다(anaconda) 설치하기 -윈도우 10

윈도우 10 환경에 python설치를 진행해보겠습니다. python을 단독으로 설치해도 좋지만, 아나콘다를 설치할 경우 python관련 라이브러리를 한꺼번에 받을 수 있기 때문에 초기 셋팅하기가 편리해집니다. 아나콘다..

vmpo.tistory.com

 

파이썬을 통한 웹 크롤링


파이썬은 라이브러리를 사용해 아주 짧은 코드로 웹의 데이터를 긁어 올 수 있습니다.

 

테스트 케이스로 네이버 스포츠 메인화면 -> 댓글 많은 뉴스 -> 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줄도 안되는 코드를 통해 웹페이지의 원하는 정보를 가져 올 수 있는 것을 확인했습니다.

이 코드를 응용하면 웹페이지의 다양한 데이터들을 가져올 수 있을 것 같네요.

주피터 노트북에서 바로 실행 가능한 코드 원본은 첨부파일 참고 부탁드립니다.

LIST
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기