
第二种方法是通过设置IP等手段,突破反爬虫机制继续高频率爬取。网站的反爬机制会检查来访的IP地址,为了防止IP被封,这时就可以使用HTTP,来切换不同的IP爬取内容。使用代理IP简单的来讲就是让代理服务器去帮我们得到网页内容,然后再转发回我们的电脑。要选择高匿的ip,IPIDEA提供高匿稳定的IP同时更注重用户隐私的保护,保障用户的信息安全。
2、这样目标网站既不知道我们使用代理,更不会知道我们真实的IP地址。
3、建立IP池,池子尽可能的大,且不同IP均匀轮换。
如果你需要大量爬去数据,建议你使用HTTP代理IP,在IP被封掉之前或者封掉之后迅速换掉该IP,这里有个使用的技巧是循环使用,在一个IP没有被封之前,就换掉,过一会再换回来。这样就可以使用相对较少的IP进行大量访问。以上就是关于爬虫IP地址受限问题的相关介绍。
你是不是下载了要登录后才能看到的图片?可以试着加一下cookie
import cookielibcj = cookielib.MozillaCookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)
然后再添加user agent一起用试试看
有些网站为了防止spider对客户信息的抓取或者抓取一些信息被他人所利用,对访问网站进行了一定的限制,但这些网页可以通过浏览器正常访问,因此,我们通过把spider伪装成浏览器对网页进行抓取,这些步骤通过在urlopen(url,headers)中添加headers来完成。
1.通过spider打开一个csdn博主的主页,会发现状态码返回403,这就说明这个博客网页加了限制。
我们先通过Google的chrome浏览器打开这个csdn博客(http://blog.csdn.net/jizhen_tan/article/details/51661203),再通过F12打开抓包工具,找到network这一选项栏再刷新网页,就会发现这些东西:
我们点开第一个Name51661203,会在headers中发现有三个元素:General、Response Headers、Requset Headers。我们要做的是模仿Requset Headers中的写法来把spider伪装成浏览器对网页进行访问。
2.这次用到的库为urllib2,它是urllib的扩展。
在headers中主要添加四个元素:User-Agent、Host、GET,这些都可以在Requset Headers中找到。headers是一个字典型。
3.一些网站会对User-Agent进行检测,如果一个时间段内过多的访问就会遭到封IP,因此我们可以通过随机变换User-Agent来进行访问:
通过一个循环来实现:
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)