如何在Scrapy中统计空响应?

1 投票
1 回答
1173 浏览
提问于 2025-04-18 04:43

我想知道在使用Scrapy的时候,有多少请求没有返回任何数据,以及具体是哪些请求没有数据。有很多情况,比如当返回404错误时,或者服务器虽然返回了一些东西,但因为格式不对而没有抓取到数据(比如我想从某种特定名称的div中提取数据,但在某个网址中实际上并不存在这个div)。谢谢!

1 个回答

3

比如,当我从一个特定名称的div中提取数据时,结果发现这个div在某个网址上其实并不存在。

在HTTP的术语中,这并不是一个空的响应。你的选择器没有找到匹配的内容。

你需要自己实现这个逻辑:

sel = Selector(response)
data = sel.xpath('//div[@class="class"]').extract()
if not data:
    # increment failure stats here
    return
# else fill the item

对于统计信息,你可以使用一个Scrapy统计收集器

撰写回答