크롤링할때는 오만가지 이유로 크롤링이 안되는 경우가 있는데, 그중에서 reuqests 요청으로 접속이 안될때 이유를 간단하게 정리해 보겠다
접속이 안되는경우는 제일먼저 가장 기본으로 header를 살펴봐야한다. 그리고 대부분 headers 옵션으로 User-Agent를 같이 보내준다면 해결이 된다.
requests.get(url, headers={“User-Agent”: 값} 을 보내주면 대부분 해결이 된다
나머지의 경우도 알아보자
- Cookie 값이 필요한경우
- Accept 값이 필요한경우
- Referer 가 필요한경우
위 경우는 필요한 값을 전달해주면 해결이 된다고 한다, 그러나 아래의 경우는 requests로 크롤링 하는 경우 해결이 어렵다고 볼수 있고, cookie , accept, referer 값을 전달하는 것 또한 많은 고난이 예상된다. 아직 나도 위 3가지 값을 전달하며 크롤링을 해본적은 없으며
문제는 cookie값을 브라우저에서 복사해서 값을 전달 한다고 해도, 쿠키값이 그대로 쓸수 없는 보안이 분명이 있을것으로 예상되기 때문이다.
requests 크롤링으로 해결이 어려운 경우는?
- SPA : 싱글 페이지 앱 (페이스북 같은 한페이지로 이루어진 사이트)
- CSRF : csrf 인증이 필요한 경우
- Captcha : 캡쳐 프로그램이 있는 경우
- IP Ban : 말그대로 과도한 크롤링으로 인하여 ip가 밴 당한경우