首页 > 解决方案 > 如果网站因 robots.txt 而无法抓取,则获取响应

问题描述

我正在尝试抓取用户定义的网站,但无法抓取 robots.txt 阻止抓取的网站。这很好,但我想得到响应,我可以向用户显示“您输入的网站由于 robots.txt 而不允许抓取”。

还有其他 3 种类型的预防,我得到了代码并相应地处理,但只有这个例外(即 robots.txt 预防)我无法处理。因此,请让我知道是否有任何方法可以处理此案例并显示相应的错误消息。

我正在使用 Python 3.5.2 和 Scrapy 1.5

标签: pythonscrapyscrapy-spiderscrapyd

解决方案


您应该使用ROBOTSTXT_OBEY

ROBOTSTXT_OBEY=False

有关RobotsTxtMiddleware 的更多信息:

此中间件过滤掉 robots.txt 排除标准禁止的请求。

为了确保 Scrapy 尊重 robots.txt,请确保启用中间件并启用 ROBOTSTXT_OBEY 设置。

如果 Request.meta 的 dont_obey_robotstxt 键设置为 True,即使启用 ROBOTSTXT_OBEY,该中间件也会忽略该请求。


推荐阅读