image.png
网络爬虫技术是指按照一定的规则,自动地抓取万维网信息的技术。爬虫一般分为数据采集,处理,储存三个部分。

一般网站从三个方面反爬虫:a.用户请求的Headers;b.用户行为;c.网站目录和数据加载方式。大多数网站都从a、b来反爬虫。一些应用ajax的网站会采用c,增大了爬取的难度(防止静态爬虫使用ajax技术动态加载页面)。

1、最常见的反爬虫策略——用户请求的Headers。

解决方法:伪装header。

大部分网站都会对用户请求头Headers的User-Agent进行检测,部分网站会对Referer进行检测。对于这类反爬可以直接在代码中添加Headers,将浏览器的User-Agent复制到代码的Headers中;

或者将Referer值修改为目标网站域名。修改或者添加Headers就能很好地绕过检测Headers的反爬。
image.png
2、基于用户行为反爬虫

部分网站是通过检测用户行为反爬,例如同一IP短时间内多次访问某个页面,或者同一账户短时间内进行多次相同操作。

解决方法:

  1. 对于“同一IP短时间内多次访问某个页面”的情况,使用IP代理就可以解决。也可以先爬取网上免费的代理ip,检测后将可用的ip全部保存起来。这样以后可以有规律地更换ip进行爬虫(如:每请求几次更换一个ip);
  2. 对于“同一账户短时间内进行多次相同操作”的情况,可以在每次请求后随机间隔一定时间再进行下一次请求

3、动态页面的反爬虫

上述的几种情况多是静态页面,对于另一部分网站是需要通过ajax请求得到我们需要爬取的数据。

解决方法:Selenium+PhantomJS

Selenium:自动化web测试解决方案,完全模拟真实的浏览器环境,完全模拟基本上所有的用户操作;

PhantomJS :一个没有图形界面的浏览器。


跨境Kevin
1 声望0 粉丝