【问题标题】:Defensive web scraping techniques for scrapy spiderscrapy spider 的防御性网络抓取技术
【发布时间】:2021-01-11 16:39:59
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 感谢您的评论!我没有分享代码,因为这是一个更笼统的讨论问题。感谢您的反馈!
    最近更新 更多