파이썬 - 크롤링 쉽게 시작하기
본문 바로가기
파이썬(Python)/파이썬 개발

파이썬 - 크롤링 쉽게 시작하기

by Squat Lee 2020. 12. 24.

인터넷에는 많은 정보들이 있습니다.

 

하지만, 모든 정보들을 가져다가 쓰기에는 어려움이 많습니다.

 

이럴 때 쓰는 방법이 '크롤링' 입니다. '스크래핑'이라고도 하며, 의미가 다소 다르나 요즘에는 혼용해서 쓴다고 합니다.

 

구글이나 네이버에서 검색하는 방법이 이런 '크롤링 봇'을 이용합니다.

 

좋아하는 연예인 사진을 검색해서 다운 받는다고 할 때 일일이 다운 받으려면 많은 시간이 걸립니다.

 

하지만 파이썬을 이용하여 크롤링을 한다면, 단 몇 초만에 수천장의 사진을 다운받을 수 있습니다.

 

이번 포스트는 크롤링 시작하는 방법에 대해서 설명하겠습니다.

 

import requests

from bs4 import BeautifulSoup

 

크롤링을 하기 위해서는 'requests' 모듈과 'bs4'의 'BeautifulSoup' 모듈이 필요합니다.

 

'requests' 모듈은 원하는 사이트의 html 코드를 요청해서 불러올 때 쓰이며, 'Beautifulsuop' 모듈은 가져온 'html'을 검색해서 원하는 데이터만 가져올 때 사용합니다.

 

url = 'https://www.naver.com'

 

우선 원하는 사이트의 주소를 'url'이라는 변수에 저장합니다.

 

res = requests.get(url)

 

requests 의 get 함수를 써서 받은 응답값을 'res'라는 변수에 저장합니다.

 

print(res)를 해 보면 결과값이 '<Response [200]>'이라고 나옵니다. 200이나 2xx 으로 나오면, 가져오는데 성공했습니다.

 

print(res.content) 를 하면, 아래와 같이 결과값이 나옵니다.

 비록 html을 받아오지만, 우리가 원하는 태그만 가져오기에는 어려움이 있습니다.

 

이때 'BeautifulSoup' 모듈을 사용합니다.

 

soup = BeautifulSoup(res.content, 'html.parser')

 

'res.content' 를 'html.parser'를 사용한 BeautifulSoup 으로 'soup'이라는 변수에 저장합니다.

 

print(soup)을 해 보면 위에 print(res.content) 와 결과가 비슷하게 나옵니다.

하지만 BeautifulSoup은 태그를 통해서 필요한 정보들을 잘 가지고 올 수 있습니다.

 

예시로 'P' 태그를 가져와 보겠습니다.

 

print(soup.find('p'))를 입력해 보면 아래와 같이 P태그만 가져온 것을 확인할 수 있습니다.

 

첫번째 P태그만 가져왔고, 전체 P태그를 가져오려면 'suop.find_all' 을 입력하면 됩니다. 아래는 전체 P 코드를 가져온 결과입니다.

전체 코드는 아래를 참고하시기 바랍니다.

1
2
3
4
5
6
7
8
9
10
11
import requests
from bs4 import BeautifulSoup
 
url = 'https://www.naver.com'
 
res = requests.get(url)
soup = BeautifulSoup(res.content, 'html.parser')
 
ps = soup.find_all('p')
 
print(ps)
cs

 

728x90
반응형

댓글