爬虫蜘蛛的防御性网络爬虫技术

时间:2021-01-11 16:39:59

标签: web-scraping scrapy scrapy-shell web-mining

我已经进行了大约 3 个月的网络抓取,我注意到我的许多蜘蛛需要不断地照顾,因为网站在变化。我使用scrapy、python 和crawlera 来抓取我的网站。例如,2 周前我创建了一个蜘蛛,由于网站将其元标签从单数更改为复数(因此位置变成了位置),因此不得不重建它。这么小的改动不应该真的惹恼我的蜘蛛,所以我想对我的收藏采取更具防御性的方法。有没有人对网络抓取有任何建议以减少保姆?提前致谢!

1 个答案:

答案 0 :(得分:1)

由于您没有发布任何代码,我只能提供一般性建议。

  1. 看看是否有隐藏的 API 来检索您要查找的数据。 在 Chrome 中加载页面。使用 F12 检查并查看网络选项卡下。点击CTRL + F,您可以搜索您在屏幕上看到的要收集的文本。如果您在“网络”选项卡下找到包含 json 数据的任何文件,则更可靠,因为网页后端的更改频率将低于前端。

  2. 选择器不要太具体。您可以改为body > .content > #datatable > .row::text而不是#datatable > .row::text。这样你的蜘蛛就不太可能因为小的变化而崩溃。

  3. 使用 try except 处理错误,以便在您预计某些数据可能不一致时阻止整个解析函数结束。