프로그래밍/Crawling

[Crawling] https 403에러 발생 해결방법

seojeon9 2022. 8. 17. 10:44

문제상황

크롤링을 할때 사이트에 접근만 했을뿐인데 403에러가 나는 경우가 있을 것이다.

이것은 https주소를 가지고 있는, 보안이 조금 더 강한 사이트일 경우 발생할 수 있는데

알려져있지않은 부정 접근을 차단하는 것이다.

 

해결방법

해결방법으로는 request객체의 header에 '내가 누구야!' 라는 정보를 넣어주면 되는데

 

# 웹 주소가 https 이므로 ssl 패키지 이용
# html = urlopen(url) #403번 에러 발생(부정접근으로 차단-알려진 agent를 헤더에 추가해서 전달하면 됨)
# 헤더를 추가하려면 일반적으로 Request(get_url,headers={key:value})

import ssl
context = ssl._create_unverified_context() # 암호화 해서 가져갈 수 있는 객체
req = Request(url,headers={'User-Agent':'Mozilla/5.0'}) # request 객체
html=urlopen(req,context=context)

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

soup

 

이렇게 Request 객체를 만들어서 header에 값을 넣어주고 보내면 정상적으로 크롤링 해온답니다!

 

728x90