Rah*_*hul 8 python scrapy web-scraping
根据这些说明,我可以看到HTTP 500错误,连接丢失错误等总是被重新安排,但是如果403错误被重新安排,或者它们被简单地视为有效响应或在达到重试限制后被忽略,我找不到任何地方.
同样来自同一指令:
一旦蜘蛛完成了对所有常规(非失败)页面的爬行,在抓取过程中收集失败的页面并在结束时重新安排.一旦没有更多失败的页面重试,该中间件就会发送一个信号(retry_complete),因此其他扩展可以连接到该信号.
这些Failed Pages是指什么?它们包含403错误吗?
此外,当scrapy遇到HTTP 400状态时,我可以看到引发此异常:
2015-12-07 12:33:42 [scrapy] DEBUG: Ignoring response <400 http://example.com/q?x=12>: HTTP status code is not handled or not allowed
Run Code Online (Sandbox Code Playgroud)
从这个例外情况来看,我认为很明显HTTP 400响应被忽略而不是重新安排.
我不确定403 HTTP状态是否被忽略或重新安排在最后被抓取.所以我尝试根据这些文档重新安排具有HTTP状态403的所有响应.这是我到目前为止所尝试的:
在middlewares.py文件中:
def process_response(self, request, response, spider):
if response.status == 403:
return request
else:
return response
Run Code Online (Sandbox Code Playgroud)
在settings.py中:
RETRY_TIMES = 5
RETRY_HTTP_CODES = [500, 502, 503, 504, 400, 403, 404, 408]
Run Code Online (Sandbox Code Playgroud)
我的问题是:
Failed Pages是指什么?它们包含403错误吗?process_response重新安排403错误页面,还是通过scrapy自动重新安排?| 归档时间: |
|
| 查看次数: |
3306 次 |
| 最近记录: |