在之前的学习中也了解到一些反爬与应对反爬的策略,见这篇博客 。
client >> DNS(运营商) >> CDN >> proxy >> host >> Apach >> PHP
(1)单一IP非常规的访问频次
(2)单一IP非常规的数据流量
(3)大量重复简单的网站浏览行为
(4)只下载网页,没有后续的js、css请求
(5)通过一些陷阱来发现爬虫,例如一些通过CSS对用户隐藏的链接,只有爬虫才会访问
(1)user-agent
(2)动态网页 js
(3).htaccess 机器学习、大数据来判断是否爬虫
(4)基于流量的拒绝
(5)基于IP连接的拒绝
iptable的控制:
即我们的爬虫被网站识别后网站会给予我们什么信息?
(1)验证码
(2)响应时间
(3)错误:301、401、403、404、408、429、503
三、应对反爬虫的策略
1、模拟路由器登录
2、通过POSTMAN查找路由器的断线、重连接口
3、当发现IP被主机识别后,强制路由器断线、重连
我们在浏览器url栏输入192.168.1.1就可以弹出登录信息
路由器重连
display:none 隐藏当前块
当CSS内有上面语句时,在浏览器页面显示时会隐藏
限制网络爬虫的命门是限速,如何在网站限速的条件下更快速的获得我们想要的内容才是重点!!!!!
大型网站都有很多服务器,当我们访问不同的服务器时,反爬虫监督只会记录我们访问一次,而实际上我们不止访问一次。因此我们应该花点时间找到这些服务器的IP地址。
如:Google在全球可能有成百上千的服务器,如果我们能找到这些服务器IP地址,将会提速N倍,当爬取内容非常多时,那么这是值得的!!
一个网页内嵌套另一个网页的内容,只需要嵌入其网址,而看不到其源代码。
例子 广东省电子税务局
console
方法一:document.getElementsByClassName('col-xs-12')[0]
方法二:document.getElementById('ifrMain').contentWindow.document.getElementsByClassName('col-xs-12')
‘ifrMain’ 拿到嵌套页面,注意复制粘贴
上面两种方法在console控制台都能拿到我们想要的内容,
但是在用selenium+phantomjs时只能用方法二