url请求timeout时scrapy core会araise异常?

来源:9-10 scrapy的数据收集

慕婉清4097246

2019-12-06

老师,请看如下错误信息:(异常信息显示不完整,不知为什么,请看下面回答区1楼)
“2019-12-06 20:47:13 [scrapy.core.scraper] ERROR: Error downloading

我的理解是url请求超时的时候,scrapy core不是应当根据RETRY_TIMES的值静默地重试几次就好了吗,怎么会产生一个异常呢? 即使重试次数超限还是没有得到数据也不应该出现如下异常信息呀。因为超时是个大概率发生的事情,怎么能认为是异常呢? 最多打印类似这样的信息我认为就正常:[scrapy.downloadermiddlewares.retry] DEBUG: Gave up retrying <GET https://xxxx.html>
请解答,谢谢!

写回答

1回答

慕婉清4097246

提问者

2019-12-06

老师,请看如下错误信息:

"2019-12-06 20:47:13 [scrapy.core.scraper] ERROR: Error downloading

 <GET xxxxxxx.html>

Traceback (most recent call last):

  File "E:\python-in-action\Envs\guahao_36\lib\site-packages\twisted\internet\defer.py", line 1416, in _inlineCallbacks

    result = result.throwExceptionIntoGenerator(g)

  File "E:\python-in-action\Envs\guahao_36\lib\site-packages\twisted\python\failure.py", line 512, in throwExceptionIntoGenerator

    return g.throw(self.type, self.value, self.tb)

  File "E:\python-in-action\Envs\guahao_36\lib\site-packages\scrapy\core\downloader\middleware.py", line 44, in process_request

    defer.returnValue((yield download_func(request=request, spider=spider)))

  File "E:\python-in-action\Envs\guahao_36\lib\site-packages\twisted\internet\defer.py", line 654, in _runCallbacks

    current.result = callback(current.result, *args, **kw)

  File "E:\python-in-action\Envs\guahao_36\lib\site-packages\scrapy\core\downloader\handlers\http11.py", line 352, in _cb_timeout

    raise TimeoutError("Getting %s took longer than %s seconds." % (url, timeout))"



我的理解是url请求超时的时候,scrapy core不是应当根据RETRY_TIMES的值静默地重试几次就好了吗,怎么会产生一个异常呢? 即使重试次数超限还是没有得到数据也不应该出现如下异常信息呀。因为超时是个大概率发生的事情,怎么能认为是异常呢? 最多打印类似这样的信息我认为就正常:[scrapy.downloadermiddlewares.retry] DEBUG: Gave up retrying <GET https://xxxx.html>

请解答,谢谢!


0
1
bobby
是的,会根据设置的重试次数重试的,但是你这里说到的超时是大概率时间这话不对,对于一个网站来说,能正常响应是一个网站的基本需求,所以理论上来讲第一次如果没有请求到,后续请求到的几率会小很多,有可能是对方网站反爬了 也有可能是当前自己的网络问题,也有可能是对方的服务器响应不过来,不论是这几种情况哪种都是很严重的问题,所以网页下载不到抛出异常是很重要的,如果某个url又下载不到又不抛出异常那才是莫名其妙的,你后续想排查问题都难
2019-12-09
共1条回复

Scrapy打造搜索引擎 畅销4年的Python分布式爬虫课

带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎

5795 学习 · 6290 问题

查看课程