在抓取网站时,我收到错误"超过180.0秒".为什么?

Muh*_*ial 1 python scrapy python-2.7 scrapy-spider

当我运行脚本时,scrapy不断抛出这条消息:

Took longer than 180.0 seconds
Run Code Online (Sandbox Code Playgroud)

导致此问题的原因是什么,以及针对此问题的具体解决方案?

以下是此消息的屏幕截图. 图片

Pat*_*ner 6

下载时你正在达到scrapy超时.

请参阅 DOWNLOAD_TIMEOUT

默认为360秒= 6分钟.调整您的设置以使其更长.

根据您的设置文档

可以使用不同的机制填充,每个机制具有不同的优先级.以下是按优先顺序递减的列表:

命令行选项(最优先)
每个蜘蛛的
设置项目设置模块
默认设置每个命令
默认全局设置(优先级较低)

您没有共享代码,因此很难说,但要么修改蜘蛛的设置,要么将它们作为命令行选项提供.

scrapy crawl myspider -s DOWNLOAD_TIMEOUT=<some value that benefits you crawling>
Run Code Online (Sandbox Code Playgroud)

另外你可以像蜘蛛一样设置它们:

class MySpider(scrapy.Spider):
    name = 'myspider'

    custom_settings = {
        'DOWNLOAD_TIMEOUT': 'some value',
    }
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请阅读设置 - 手册