Python爬虫遇到403,代理IP来解决!当我们进行爬虫工作的时候,经常会碰上一些难题,比如 407 authentication required ,这是授权问题;HTTP Error 403: Forbidden,这可能是被反爬虫机制识破了,被目标网站拒绝请求。所以403 Forbidden错误应当如何处理呢?可能这也是你们常常会碰到的问题。怎么做才不会被反爬虫识别呢?
一、利用高匿名代理IP
代理ip按照匿名性的级别划分为透明代理、普匿代理、高匿代理。透明代理会泄露本机IP,普匿代理会泄露使用了代理ip,这两种会暴露使用了代理ip,特别轻松就被识破了,像IP代理精灵这种高匿名ip代理就不会被泄露。
二、尽可能使用干净的代理IP
要是有许多用户使用一样的ip同时访问同一网页,也会非常容易被破解的,当这些ip浏览过于频繁或是浏览测试触及了当前网页的阈值时,ip就会受限。在这种情况下,就要使用高匿名自动切换的IP代理精灵所获得的ip。
三、伪装成浏览器
除此之外,代码里没有设置User-Agent也会出现这类错误的。对于一些 header 尤其要注意,Server 端会针对这些 header 做检查。User-Agent 有些 Server 或 Proxy 会检查该值,用于判断是否是浏览器发起的 Request
Content-Type 在使用 REST 接口时,Server 会检查该值,用来确定 HTTP Body 中的内容该如何解析。
这时可以通过修改http包中的header来实现,代码片段如下:
import urllib2headers = { 'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'}request = urllib2.Request( url = 'http://********', headers = headers)print urllib2.urlopen(request).read()