본문 바로가기
Programming/Python

[Python] 파이썬 크롤링 해보기 1탄

by 도낙원 2018. 5. 25.
반응형

  크롤링(crawling) 

크롤링은 웹 페이지를 그대로 가져와서 거기서 데이터를 추출해내는 행위를 말합니다. 


  라이브러리 다운

웹 크롤링을 위해 필요한 라이브러리가 있습니다. 먼저 설치를 하고 시작하겠습니다.

필요한 라이브러리는 두가지 입니다.


  requests

requests 라이브러리는 우리가 크롤링을 할 웹 페이지를 요청하기 위해 필요한 라이브러리


  BeautifulSoup

웹 페이지를 효율적으로 파싱해서 원하는 정보를 찾을 수 있게 도와주는 라이브러리


설치 방법

pip를 이용하여 설치


파이참에서 설치

File -> Setting -> Project: 프로젝트 이름 -> Project Interpreter



  코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import requests
from bs4 import BeautifulSoup 
 
def naver_movie():
 
    url = "https://movie.naver.com/movie/sdb/rank/rmovie.nhn"
    html = requests.get(url).text
 
    soup = BeautifulSoup(html, "html.parser")
    tags = soup.find_all("div", {"class""tit3"}) 
 
    for idx, tag in enumerate(tags): 
        tag.a.get_text()
        print(idx+1, tag.a.get_text())
 
 
naver_movie()
cs


  결과 값
2018년 05월 28일 기준 네이버 영화랭킹 순위 입니다. 총 50위 까지 표시가 되지만 현재 17위 까지 표시했습니다.


  추가 설명
Line 10을 보면 find_all("태그". {"태그 속성": "속성 이름"}) 이렇게 입력하게 되어 있습니다. 우리가 크롤링하려고 하는 값은 영화 제목이므로 그 부분의 태그를 알아야 합니다. "데드풀 2" 라는 텍스트를 포함하고 있는 태그는 <div> 태그이며 이 태그의 class 속성의 이름은 "tit3" 가 됩니다. 즉 다시 말하자면 
"<div> 태그 중에 class 속성의 이름이 "tit3"으로 된 것은 모두 추출" 하라는 말이 됩니다.
현재 영화 제목을 나타내는 모든 텍스트는 이 태그안에 있고 순차적으로 모든 영화 제목을 추출하게 됩니다.
만약 영화 제목이 아닌 다른 <div> 태그가 똑같은 "tit3" class 속성을 가지고 있다면 당연히 그것 또한 추출하게 됩니다.
그래서 이렇게 데이터를 추출할 때는 미리 잘 확인하고 추출해야 합니다.




반응형
사업자 정보 표시
난길샵 | 박현숙 | 경상북도 성주군 월항면 수죽길 98길 | 사업자 등록번호 : 256-07-01668 | TEL : 010-9909-8420 | Mail : skr04@naver.com | 통신판매신고번호 : 제2020-경북성주-52호 | 사이버몰의 이용약관 바로가기

'Programming > Python' 카테고리의 다른 글

[python] 파이썬 설치 및 파이참 설치  (1) 2018.05.15

댓글