利用scrapy下载大量大尺寸图片及视频时有时会报错,显示放弃重试,用户连接时间超过180s导致失去连接 如下
Gave up retrying <GET url> (failed 3 times): User timeout caused connection failure: Getting url took longer than 180.0 seconds..
这是由于scrapy并发请求过多,默认情况下会同时下载16个文件,而连接时间默认超过三分钟就会丢失。就是说如果三分钟之内你的网速没法支持你同时下载完16个文件的话就会造成这个问题。
解决方法就是在settings.py中将默认并发连接数调小或者将timeout时间调大
CONCURRENT_REQUESTS = 2
DOWNLOAD_TIMEOUT=1800
此时并发请求被调成2, 等待时间被1800秒,一般的小视频和图片是没有问题了。