我尝试抓取用户定义的网站,但无法抓取robots.txt阻止抓取的网站。这很好,但我希望得到响应,我可以向用户显示"您输入的网站由于robots.txt"而不允许抓取。
还有其他3种类型的预防,我得到了相应的代码和处理,但只有这个例外(即robots.txt预防)我无法处理。所以,如果有办法处理案件并显示相应的错误信息,请告诉我。
我使用的是Python 3.5.2和Scrapy 1.5
答案 0 :(得分:0)
您应该使用ROBOTSTXT_OBEY
ROBOTSTXT_OBEY=False
有关RobotsTxtMiddleware的更多信息:
此中间件会过滤掉robots.txt禁止的请求 排除标准。
要确保Scrapy尊重robots.txt,请确保中间件是 启用并启用ROBOTSTXT_OBEY设置。
如果Request.meta将dont_obey_robotstxt键设置为True请求 即使启用了ROBOTSTXT_OBEY,这个中间件也会被忽略。