爬虫的目的就是大规模的,长时间的获取数据,不过总是用一个IP取爬网站,大规模集中对服务器访问,时间久了就会有可能被拒绝,爬虫长时间爬取数据,还可能要求验证码,即便是多个账号轮流爬取仍然会出现要求输入要验证码的情况,下面这五个技巧教你解决和避免这些问题。
反爬虫技巧:
一:设置下载等待时间和频率
大规模集中访问对服务器的影响比较大,爬虫可以短时间增大服务器负载。这里需要注意的是:设定下载等待的时间的范围控制,等待时间过长,不能短时间满足大估摸的抓取要求,等待时间很有可能被拒绝访问.
1.在之前“从url获取HTML的方法里,对于htttpGet的配置设置了socket超时和连接connect超时,其实这里的时长不是绝对的,主要取决于目标网站对爬虫的控制。
2。另外,在scrapy爬虫框架中,专有参数可以设置等待下载时间,这个参数可以设置在setting。py里,也可以设置在spider里
技巧二:修改user-Agent
最常见的就是伪装浏览器,修改用户代理
Uesr-Agent是指包含浏览器信息,操作系统信息等的一个字符号,也可以称之为一种的特殊的网络协议。服务器通过它判断当访问对象是浏览器,邮件客户端还是网络爬虫。在request headers里可查看用户管理
具体方法可以把用户管理信息的值改为浏览器的方式,甚至可以设置一个用户管理池。存放多个‘浏览器’,每次爬起的时候随机取一个来设置request 的user-Aguest,这样用户管理会一直在变化,防止翻墙
技巧三:设置cookies
cookies其实是储存在用户终端的一些被加密的数据,有些网站通过cookies来识别用户身份,如果是某个访问总是高频率的发出请求,很有可能被网站注意到被嫌疑为爬虫,这是网站就可以通过cookies找到这个访问的用户而拒绝其访问。可以自定义设置为cookies策略或者禁止cookies。
技巧四:分布式爬取
分布式爬取也有很多Githbrepo。原理主要是维护一个所有集群机器有效分享的分布式队列。使用分布式爬取还有一个目的:大规模的抓取,单台机器的负荷很大,速度也很慢,多台机器可以设置一个master管理堕胎slave同时去爬取。
技巧五:应对爬虫的策略之一就是直接将IP或者一整个IP段全部禁封后,转换到其他IP继续访问即可
华益云-ADSL拨号物理机_高匿爬虫HTTP代理IP_远程电脑出租_动态拨号VPS服务器