问题描述
我已经进行了大约 3 个月的网络抓取,我注意到我的许多蜘蛛需要不断地照顾,因为网站在变化。我使用scrapy、python 和crawlera 来抓取我的网站。例如,2 周前我创建了一个蜘蛛,由于网站将其元标签从单数更改为复数(因此位置变成了位置),因此不得不重建它。这么小的改动不应该真的惹恼我的蜘蛛,所以我想对我的收藏采取更具防御性的方法。有没有人对网络抓取有任何建议以减少保姆?提前致谢!
解决方法
由于您没有发布任何代码,我只能提供一般性建议。
-
看看是否有隐藏的 API 来检索您要查找的数据。 在 Chrome 中加载页面。使用
F12
检查并查看网络选项卡下。点击CTRL + F
,您可以搜索您在屏幕上看到的要收集的文本。如果您在“网络”选项卡下找到包含 json 数据的任何文件,则更可靠,因为网页后端的更改频率将低于前端。 -
选择器不要太具体。您可以改为
body > .content > #datatable > .row::text
而不是#datatable > .row::text
。这样你的蜘蛛就不太可能因为小的变化而崩溃。 -
使用
try except
处理错误,以便在您预计某些数据可能不一致时阻止整个解析函数结束。