最近在做的事情比较坑也比较有趣,分享一下:
业务场景:有10w+的的网站,现在需要抓取这些网站下某些频道的具体数据。
解决思路:
1.定向爬虫可行性太低,即便是那种配置化的爬虫。开发的时间成本和维护成本太高,假如网站改版相当于爬虫需要重写。
2.然后来找规律,发现所需要的数据的行为模式基本都是从列表页进-->文章页,而具体的文章就是我们需要的数据。见下面识别效果图(标红部分)
3.那么思路基本明确了,列表识别;过滤所需要下载的列表;对列表页翻页;对文章页下载。
4.与传统定向爬虫相比,不再只抓取特定字段,而是整页抓取,结构化后移。
设计概念图:
零零碎碎:
1.对目标网站进行BFS(广度优先遍历),层级可以进行限制比如只点击两层。并对访问目标进行过滤,对反向特征特别明显的进行提速。
2.链接和点击事件的后续任务需要层级+1,而iframe不需要,因为iframe应该就是当前层级的内容。
3.列表识别需要用到selenium,涉及主视图区域的判断,下载翻页就无所谓了看你心情,翻页最好使用selenium,不然会麻烦一点。
4.有趣是真的有趣,自己一边写一边学到不少;坑是因为一旦样本量上来了,你想做通用,同时顾及召回率与准确率难度太大太坑。
5.列表识别看下一个文章