파이썬으로 크롤링을 시도하던 중 403 Foribidden 에러가 났습니다.
구글링을 해보니 원인은 requests로 접근하는걸 비정상적인 접근으로 보고 차단하는 것 같더군요.
1
2
3
4
5
6
7
|
import requests
from bs4 import BeautifulSoup
URL = 'http://www.naver.com'
res = requests.get(URL)
soup = BeautifulSoup(res.text)
print(soup)
|
위는 예시 코드 입니다. 위 코드는 실행하면 네이버 html 소스를 잘 읽어옵니다(...)
하지만 저희는 저걸 403 Foribidden이 발생하는 소스라고 치고
해결 방법은 간단했습니다.
1
2
3
4
5
6
7
8
9
|
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent': 'Mozilla/5.0'}
URL = 'http://www.naver.com'
res = requests.get(URL, headers=headers)
soup = BeautifulSoup(res.text)
print(soup)
|
위와 같이 중간에 headers를 선언해주고
requests를 호출 할때 헤더정보를 넣어주면 됩니다
헤더정보를 넣는 방법은 아래와 같이 여러 가지가 있지만
제가 크롤링하려던 사이트는 위와 같은 간단한 소스로 해결이 되었습니다
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}
headers = {'User-Agent':'Chrome/66.0.3359.181'}
headers = {'User-Agent':'Mozilla/5.0', 'referer' : 'http://www.naver.com'}
댓글 없음: