개발 관련/python

[crawling] HTTP error 403

홍비 2022. 1. 12. 13:13

웹 크롤링이 필요해서 다음과 같은 코드를 실행했다.

from bs4 import BeautifulSoup
from urllib.request import urlopen

url = '크롤링하고자 하는 URL'

html = urlopen(url)
soup = BeautifulSoup(html, 'html.parser')
soup

 

하지만 다음과 같은 오류가 발생했다.

 

403 에러는 서버가 클라이언트의 접근을 거부할 때 생기는 응답 코드이다.

크롤링 코드는 제대로 작동되지 않았으나, 웹 사이트는 잘 들어가지는 것을 보면 서버에서 크롤링을 막고 있는 것이라고 생각했다.

 

 

때문에 다음과 같이 headers를 추가했다. 또한 urllib.request의 Request도 추가해주었다.

from bs4 import BeautifulSoup
from urllib.request import Request, urlopen

url = Request('크롤링하고자 하는 URL', headers={'User-Agent': 'Mozilla/5.0'})

html = urlopen(url)
soup = BeautifulSoup(html, 'html.parser')
soup

 

제대로 잘 가져오는 것을 확인했다.