如何使用python解决网站的反爬虫
伪装header。很多网站都会对Headers的User-Agent进行检测,还有一部分网站会对Referer进行检测(一些资源网站的防盗链就是检测Referer)。如果遇到了这类反爬虫机制,可以直接在爬虫中添加Headers,将浏览器的User-Agent复制到爬虫的Headers中;或者将Referer值修改为目标网站域名[评论:往往容易被忽略,通过对请求的抓包分析,确定referer,在程序中模拟访问请求头中添加]。对于检测Headers的反爬虫,在爬虫中修改或者添加Headers就能很好的绕过。
2、基于用户行为反爬虫
还有一部分网站是通过检测用户行为,例如同一IP短时间内多次访问同一页面,或者同一账户短时间内多次进行相同操作。[这种防爬,需要有足够多的ip来应对]
(1)、大多数网站都是前一种情况,对于这种情况,使用IP代理就可以解决。可以专门写一个爬虫,爬取网上公开的代理ip,检测后全部保存起来。有了大量代理ip后可以每请求几次更换一个ip,这在requests或者urllib中很容易做到,这样就能很容易的绕过第一种反爬虫。
编写爬虫代理:
步骤:
1.参数是一个字典{'类型':'代理ip:端口号'}
proxy_support=urllib.request.ProxyHandler({})
2.定制、创建一个opener
opener=urllib.request.build_opener(proxy_support)
3a.安装opener
urllib.request.install_opener(opener)
3b.调用opener
opener.open(url)
用大量代理随机请求目标网站,应对反爬虫
2020-10-10 · 百度认证:江苏艾迪信息科技官方账号
一、构建合理的HTTP请求头
HTTP的请求头是在你每次向网络服务器发送请求时,传递的一组属性和配置信息。由于浏览器和Python爬虫发送的请求头不同,有可能被反爬虫检测出来。
二、设置cookie的学问
Cookie是一把双刃剑,有它不行,没它更不行。网站会通过cookie跟踪你的访问过程,如果发现你有爬虫行为会立刻中断你的访问,比如你特别快的填写表单,或者短时间内浏览大量页面。而正确地处理cookie,又可以避免很多采集问题,建议在采集网站过程中,检查一下这些网站生成的cookie,然后想想哪一个是爬虫需要处理的。
三、正常的时间访问路径
合理控制采集速度,是Python爬虫不应该破坏的规则,尽量为每个页面访问时间增加一点儿间隔,可以有效帮助你避免反爬虫。
四、使用http
对于分布式爬虫和已经遭遇反爬虫的人来说,使用http将成为你的首选。Ipidea分布地区广,可满足分布式爬虫使用需要。支持api提取,对Python爬虫来说再适合不过。
1、仅限制用户IP访问频率
限制IP访问频率通常表现为:当使用本地IP收集速度高于某个频率时,会出现收集错误、页面重定向等。在cookie中存储访问者的IP信息,增加了爬虫的难度。
解决方案:
(1)当cookie中没有IP记录时,需要使用动态短效代理IP/隧道代理IP,根据网站限制IP强度,调整采集速度,购买适当的代理IP,将其设置到ForeSpider爬虫IP代理。
(2)cookie中记录IP时需要使用静态持久代理IP,根据网站的IP限制,调整采集速度,购买适量的代理IP,将其设置到ForeSpider数据采集系统IP代理处。
2、限制用户ID访问
频率限制用户标识通常表现为:收集一段时间后,停止收集/收集错误,浏览器中的页面无法显示(页面重定向、验证码、错误页面等)。)。清空浏览器浏览记录后,可以再次打开并正常显示。
在这个时候,可以查看页面的cookie,以确认服务器是否限制用户ID,当访问页面的cookie中存在UID或其他ID字符串时,表明服务器已识别了该用户ID。还有一种对UID加密的情况,这时cookie中有一串加密后的字符串。
方法:在ForeSpider采集器高级设置中使用多通道采集功能,设置最大登录用户数,设置代理IP(使用静态持久代理IP),通过模拟多用户浏览网站,解决网站ID的局限性。
3、用户IP访问频率
用户ID访问频率的双重限制通常表现为:采集一段时间后,停止采集/采集错误,页面无法显示在浏览器中(页面重定向、验证码、错误页面等)。).清空浏览器浏览记录后,再次打开即可正常显示。
爬虫设置为多通道收集后,收集一段时间后发现知识产权被封存。还可以通过观察页面cookie中是否有IP和UID/UID加密信息来判断。
解决方案:使用ForeSpider数据采集系统的高级设定中的多通道采集功能,同时打开动态IP锁定,设定代理IP(使用静态长期代理IP),设定最大登录用户数,解决网站对帐户的限制
4、限制用户帐户访问频率通常表现为:
网站需要登录,登录后收集的帐户被封存。这种情况一般是由于服务器识别用户账号,并限制用户账号访问频率导致的。
解决方案:注册多个账号,密封后更换;
2018-11-11
1、给客户提供换ip功能,包含静态线路和动态线路选择
2、提供全国20多个省160多个城市ip地址随意选择
3、提供静态ip.动态ip地址供客户长期使用
4、提供se、pptp、L2tp等模式链接