难点分析
1.网站采取反爬策略
2.网站模板定期变动
3.网站url抓取失败
4.网站频繁抓取ip被封
1.网站采取反爬策略
》网站默认对方正常访问的方式是浏览器访问而不是代码访问,为了防止对方使用大规模服务器进行爬虫从而导致自身服务器承受过大的压力,通常网站会采取反爬策略
根据这一特性,我们用代码模拟实现浏览器访问
2.网站模板定期变动—解决方案
》标签变动,比如<div>变动,那么我们不能把代码给写死了
(1)不同配置文件配置不同网站的模板规则
(2)数据库存储不同网站的模板规则
网站URL抓取失败—解决方案
》可能网络有问题,断网、网络波动、对方服务器的问题等都会导致网站URL抓取失败
(1)HttpClient默认处理方式,比如尝试三次
(2)Storm实时解析失败日志,将失败URL重新加入抓取仓库,一般超过三次就放弃。
网站频繁抓取IP被封—解决方案
》这是我们爬虫肯定会遇到的,比如对方可能会对你一段时间内发起访问次数有所限制,超过限制就把你的IP给封了。下面是常见的几种解决方式,实际上我们都是结合这些方式来降低IP被封的概率。
(1)购买代理IP库,随机获取IP抓取数据
(2)部署多个应用分别抓取,降低单节点频繁访问
(3)设置每个页面抓取时间间隔,降低被封概率