我有一个链接数组,如何检查是否有断开的链接方法。通常,我需要实现类似于以下结构的东西
def parse(self, response,**cb_kwargs):
for link in links:
*if response HTTP 404 callback=self.parse_data...*
*elif response HTTP 200 callback=self.parse_product...*
def parse_data(self, response,**cb_kwargs):
pass
def parse_product(self, response,**cb_kwargs):
pass
事实是我需要知道第一个方法(parse)中的状态,这可能吗?
1条答案
按热度按时间mwecs4sa1#
你可以在
stat_urls
中添加链接,在parse()
中,你可以选中response.status
(并获得response.url
),你可以直接运行代码来处理这个url --没有必要用Requests
再次发送它--除了Scrapy
(默认)跳过相同的请求。但是
Scrapy
跳过parse()
的url,这会产生错误,所以你必须改变列表handle_httpstatus_list
。编辑:
我没有测试,但在文档中您也可以看到
在请求处理中使用错误返回捕获异常
它显示了当
errback=function
出错时如何使用errback=function
将response
发送到function
。还有
访问errback函数中的附加数据