파이썬 Beautifulsoup 웹크롤링 차단시 해결방법

by nanumi posted Jul 23, 2021
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

파이썬 Beautifulsoup 웹크롤링 차단시 해결방법

 

크롤링이 차단되었다면 유저 에이전트(User Agent)를 지정해보자

 

크롤링을 하다 보면 종종 페이지에서 아무것도 받아오지 못해서 막히는 경우가 생깁니다.

서버에서 차단을 당했기 때문입니다. 

 

서버는 User Agent 검사 등의 방법으로 일반 사용자(사람)와 봇을 구분하여 차단할 수 있습니다. 

 

가장 쉬운 방법은 Header에 User Agent 정보를 만들어서 보내는 겁니다.

 

 

유저 에이전트란

브라우저가 웹사이트에 연결을 시작할 때 전달되는 기기 정보로 브라우저의 유형, 운영체제 등의 정보가 담겨있습니다. 예를 들면 다음과 같이 생겼습니다.

 

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36

 

유저 에이전트를 담아서 get 요청보내기

url = '웹페이지 주소'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'}
r = requests.get(url, headers=headers)
soup = BeautifulSoup(r.text, 'html.parser')

 

user-agent 값에 어떤 문자열을 넣어야 할지 모르겠다면 http://www.useragentstring.com/에 들어가서 본인의 정보를 확인하고 그대로 붙여 넣어도 무방합니다.