说起爬虫,目前存在许多流行的爬虫框架。其中最著名的莫过于Python语言方面的Scrapy,Java语言方面的Webcollector等。它们都是开源的轻量级爬虫工具,根据不同的使用场景、业务特点、开发人员的语言偏好,可以选择不同功能的开源框架。当然老司机,也可能自己开发一种爬虫功能框架,毕竟自己编写的才能够更好的配置、控制、使用爬虫,完成爬虫业务的需求。

第一生

  初进入爬虫坑洞感觉爬虫很难。刚开始选择的是使用Jsoup+Java基本爬虫任务,当初是小量的数据,主要是做个人的研究学习数据。

  刚开始汽车之家没有复杂的反扒虫策略,所以非常顺利的爬取到了需要的数据,这时候感觉不过如此。

  后来想要更新一下数据发现以前的代码不能使用了,瞬间傻呆了。逐渐排除各种干扰因素,加上使用Chrome开发者工具不断的研究发现,汽车之家的发爬虫策略发生了升级。短短不到一个月的时间,汽车之家网站内部的一些板块采用了高级的发爬虫功能措施。

第二生

  针对汽车之家的反爬虫措施结合百度的内容,我发现使用PhantomJS+Java调用的方式,可以获取到汽车之家相关模块的内容。

  使用Phantomjs无界面模拟浏览器可以运行JS,这样就可以跳过汽车之家设置的各种坑,还可以使用JS获取被隐藏掉的文字内容。这样又可以爬虫到想要的数据啦 ,而且感觉高大上了不少。

  但是偶然的机会发现,汽车之家好像又出了一套新的发爬虫规则,这就是IP访问限制。这样就不能自由的爬虫了,需要找到新的解决方案。

第三生

  如果同一个IP地址大量的访问汽车之家网站,就会存在以下情况

  1. 有一些访问会出现Timeout的情况;
  2. 返回码为429,也就是限制访问的请求数。

  这时候如果想要继续获取汽车之家的数据,就要从IP代理的角度或其它措施来处理了。这些措施的落地,一般是需要破费的。

  刚开始使用爬取免费的IP代理,比如西刺IP、IP181、快代理等代理网站,但是时间一长免费代理IP基本上就废掉了。这时候还是需要使用付费的代理IP:一方面,不需要自己去考虑代理问题了,有服务商提供维护工作;另一方面,避免出现各种被攻击事件发生,相当于添加了一个隔离层。

总结

  通过爬虫数据,总结如下:
1. 爬虫数据是一个时间输出的过程,大量的爬虫时间消耗来获取数据;
2. 大规模爬虫,是需要破费的;
3. 数据越来越成为一种资产的表现形式;
4. 网站在爬虫与反爬虫的对抗中不断的升级,防御网络、识别黑户模型不断完善。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

爬虫+模拟登录 上一篇
各大地图API关于逆地理位置编码 下一篇