我与汽车之家的三生三世

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

第一生

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

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

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

这一生,Game Over…

第二生

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

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

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

第二生,就这样结束了…

第三生

如果同一个IP地址大量的访问汽车之家网站,就会存在以下情况
1. 有一些访问会出现Timeout的情况;
2. 返回码为429,也就是限制访问的请求数。

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

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

总结

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

你可能感兴趣的:(java,机器学习,爬虫,爬虫相关)