Scrapy 400错误仅在爬网时出现,在使用Scrapy shell时不会出现

px9o7tmv  于 2022-11-09  发布在  Shell
关注(0)|答案(1)|浏览(150)

当我使用Scrapy Crawl函数从https://www.bbc.com/news/topics/c3np65e0jq4t抓取BBC新闻文章的URL时,收到400 HTTP状态代码未处理或不允许的错误。我正在使用下面的代码和命令来启动抓取。
第一个
返回此日志。
log
然而,当使用Scrapy Shell时,我可以使用一个简单的获取来访问完全相同的网页。
shell
不知道为什么会这样。我试过使用不同的用户代理和中间件,但似乎都不起作用。任何建议都将不胜感激。

wbrvyc0a

wbrvyc0a1#

400500范围内的状态代码是错误,因此Scrapy在设计上忽略了这些错误。
如果在特定情况下,您仍然希望为这些状态代码调用回调方法(如parse),则可以通过在Spider类中添加以下内容来实现:

handle_httpstatus_list = [400, 404]  # note it's a list

在大多数情况下,400将是一个错误。如果需要,您可以使用errback来处理这些错误。有关详细信息,请参阅文档。

相关问题