IT is Smart

웹크롤링 시 HTTP Error 403 Forbidden 해결하기, Solve HTTP Error 403 Forbidden problem 본문

Programming/Text Mining

웹크롤링 시 HTTP Error 403 Forbidden 해결하기, Solve HTTP Error 403 Forbidden problem

달인최선 2016. 9. 17. 08:48
반응형



필요한 정보를 수집하기 위해 크롤링 작업을 수행하다보면 어떤 주소는 웹브라우저에 직접 입력하면 페이지를 확인할 수 있는데 크롤러를 돌리면 HTTP 403 Forbidden 에러를 띄우고 크롤링이 되지 않는 경우를 만날 수 있습니다.

이는 각 사이트마다 비정상적인 접근을 차단하기 위한 조치 때문에 발생하는 현상입니다.

정상적으로 웹브라우저를 통해 접근하면 우리쪽에서 상대방 사이트서버로 HTTP Request메시지를 보내게 되는데 이때 우리쪽의 작업환경에 대한 정보를 보내줍니다. 사이트에서는 이 정보를 이용해서 접속자들의 OS, 브라우저1 종류나 버전 등을 파악해서 대응하게 되는 거죠.

근데 python과 같은 도구를 사용해서 사이트에 접속하게 되는 경우 브라우저를 통해 접속하는 경우와 다른 HTTP Request 정보를 보냅니다. 특정 사이트에서는 이 부분을 파악해서 유저들의 정상적인 접근이 아닌 경우 차단을 하는 것이다.

이상의 상황을 통해 어떻게 해결해야 하는지에 대한 솔루션도 다 나온 것 같습니다.

파이썬으로 크롤링을 할 때에도 웹브라우저를 접근할 때와 같은 HTTP Request메시지를 보낸다면 해결할 수 있겠죠?


저는 이런 코드를 사용합니다.

user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1;)'
headers = {'User-Agent': user_agent, }

page_url = 'http://itissmart.tistory.com'
request = urllib.request.Request(page_url, None, headers)

제가 사용하는 코드를  그대로 올리지는 않았습니다. 구글링으로 다양한 헤더정보를 찾을 수 있을 것입니다.




반응형

'Programming > Text Mining' 카테고리의 다른 글

List of HTTP header fields  (0) 2016.09.11
BeautifulSoup4 예제  (0) 2016.09.01
텍스트마이닝의 첫단계, 웹크롤링  (1) 2016.08.28