是否有任何方式运行scrapy作为bash脚本的一部分,并且只运行一段时间? 也许在X小时后模拟一个Ctrl-C + Ctrl-C?在脚本中运行scrapy X小时?
0
A
回答
0
0
Scrapy提供CLOSESPIDER_TIMEOUT选项停止指定的时间段之后爬行。
虽然这不是一个硬性限制 - Scrapy仍然会处理它已经下载的所有请求,但它不会从调度程序中获取新的请求;换句话说,CLOSESPIDER_TIMEOUT模拟Ctrl-C,而不是Ctrl-C + Ctrl-C,并试图优雅地停止蜘蛛。这通常不是一个坏主意,因为杀蜘蛛可能会导出的数据文件被破坏。
spider活着多长时间取决于网站和重试&并发设置。默认的DOWNLOAD_TIMEOUT是180s;请求可以重试2次,这意味着每个请求可能需要大约10分钟才能在最差的情况下完成。 CONCURRENT_REQUESTS默认为16,因此下载器中最多有16个请求,但可能会根据您抓取的内容并行下载。 Autothrottle或CONCURRENT_REQUESTS_PER_DOMAIN选项可能会限制单个域并行执行的多个请求。
因此,在绝对最坏的情况下(顺序下载,所有请求都没有响应并重试2次),蜘蛛可能会使用默认设置挂起约3小时。但通常在实践中,这个时间要短得多,几分钟。因此,您可以将CLOSESPIDER_TIMEOUT设置为一个值,例如比你的X小时少20分钟,然后使用额外的管理员(比如@lufte建议的GNU超时)来实现硬超时,如果关机时间超长,就杀死一个蜘蛛。
相关问题
- 1. 脚本Scrapy。不出口,我想从脚本运行scrapy数据
- 2. PHP运行小时脚本
- 3. 从scrapy参数的脚本中运行Scrapy蜘蛛
- 4. 从脚本运行Scrapy - 挂起
- 5. 从scrapy脚本运行多个蜘蛛
- 6. 错误运行scrapy从脚本
- 7. 在后台运行Cron作业脚本并运行15小时
- 8. 几小时后PHP运行脚本
- 9. 在powershell脚本中运行python脚本
- 10. Scrapy在特定分析中运行javascript脚本
- 11. 了Python脚本运行在X:00
- 12. 从脚本运行scrapy时发生内存溢出
- 13. 脚本在命令运行时运行
- 14. Bash脚本在调试时运行(-x)但运行正常时失败
- 15. 运行shell脚本时sh -x vs bash -x
- 16. 在shell脚本中每2小时运行一次操作
- 17. 如何在Python中运行18小时的脚本?
- 18. 使用终端在启动时运行shell脚本? (Mac OS X)
- 19. 在启动时运行shell脚本(OS X)
- 20. scrapy爬行在命令中运行良好,但从脚本运行时遇到一些问题
- 21. 在ksh shell脚本中运行脚本
- 22. 在.bashrc中运行脚本
- 23. 文本/ X-小脚本无法在Chrome
- 24. 在脚本中运行IPython
- 25. OS X外壳脚本运行ntpdate
- 26. 每x分钟运行phantomjs脚本
- 27. 在ajax中运行脚本
- 28. 在php中运行脚本
- 29. 在xcode中运行nodejs脚本运行脚本
- 30. 运行脚本,每2个小时,在X模式的6倍,6倍,每24小时