Scrapy拿到response后重发request

原创
2017/03/09 08:39
阅读数 1.2K

代码如下:

import requests


def response_retry(response):
    #request = response.request.copy()
    #original_request_url 为自定义设置的初始请求URL,在用IP代理时部分代理会修改URL
    request = response.request.replace(url = response.meta.get('original_request_url', response.url))
    #retry_times 为自定义重试次数
    retry_times = request.meta.get('retry_times', 0)
    request.dont_filter = True  #这个一定要有,否则重试的URL会被过滤
    request.meta['retry_times'] = retry_times +1
    
    return request

注意,在调用该方法返回request重试时,在爬虫Spider里一定要用yield返回,否则不会重发request。

yield response_retry(response)

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部