当我使用Scrapy Crawl函数从https://www.bbc.com/news/topics/c3np65e0jq4t抓取BBC新闻文章的URL时,收到400 HTTP状态代码未处理或不允许的错误。我正在使用下面的代码和命令来启动抓取。第一个返回此日志。log然而,当使用Scrapy Shell时,我可以使用一个简单的获取来访问完全相同的网页。shell不知道为什么会这样。我试过使用不同的用户代理和中间件,但似乎都不起作用。任何建议都将不胜感激。
wbrvyc0a1#
400和500范围内的状态代码是错误,因此Scrapy在设计上忽略了这些错误。如果在特定情况下,您仍然希望为这些状态代码调用回调方法(如parse),则可以通过在Spider类中添加以下内容来实现:
400
500
parse
handle_httpstatus_list = [400, 404] # note it's a list
在大多数情况下,400将是一个错误。如果需要,您可以使用errback来处理这些错误。有关详细信息,请参阅文档。
errback
1条答案
按热度按时间wbrvyc0a1#
400
和500
范围内的状态代码是错误,因此Scrapy在设计上忽略了这些错误。如果在特定情况下,您仍然希望为这些状态代码调用回调方法(如
parse
),则可以通过在Spider类中添加以下内容来实现:在大多数情况下,
400
将是一个错误。如果需要,您可以使用errback
来处理这些错误。有关详细信息,请参阅文档。