웹 크롤링이 필요해서 다음과 같은 코드를 실행했다.
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
제대로 잘 가져오는 것을 확인했다.
'개발 관련 > python' 카테고리의 다른 글
[django] REST API 구축하기 (0) | 2023.01.09 |
---|---|
[flask] 블루프린트(blueprint) (0) | 2022.01.05 |
[flask] 플러거블 뷰(pluggable view) (0) | 2022.01.05 |
[flask] 리다이렉션과 에러 (0) | 2022.01.05 |
[difflib] 두 문자열 비교하기 (0) | 2021.12.20 |