gpt4 book ai didi

python - 计算 scrapy webspider 的覆盖范围

转载 作者:太空宇宙 更新时间:2023-11-03 18:05:50 24 4
gpt4 key购买 nike

我正在编写网络蜘蛛,以使用scrapy从网站上删除一些产品。 python 中的框架。我想知道计算书面蜘蛛的覆盖范围和缺失项目的最佳实践是什么。

我现在使用的是记录无法解析或引发异常的案例。举个例子:当我期望产品价格或地点地址的特定格式时,我发现我编写的正则表达式与废弃的字符串不匹配。或者当我的特定数据的 xpath 选择器没有返回任何内容时。

有时,当产品列在一页或多页中时,我会使用 curlgrep 来粗略计算产品数量。但我想知道是否有更好的做法来处理这个问题。

最佳答案

常见的方法是,是的,使用 logging记录错误并通过不返回任何内容来退出回调。

示例(需要产品价格):

loader = ProductLoader(ProductItem(), response=response)
loader.add_xpath('price', '//span[@class="price"]/text()')
if not loader.get_output_value('price'):
log.msg("Error fetching product price", level=log.ERROR)
return

您还可以使用signals要捕获并记录爬行时发生的所有类型的异常,请参阅:

这基本上遵循 Easier to ask for forgiveness than permission当你让蜘蛛失败并在一个特定的地方(信号处理程序)捕获并处理错误时,原则上。

<小时/>

其他想法:

  • 您甚至可以将响应 URL 和错误回溯放入数据库中以供后续审核 - 这仍然是“日志记录”,但采用结构化方式,可以更方便以后查看
  • 一个好主意可能是创建自定义异常来表示不同的抓取错误,例如:MissingRequiredFieldErrorInvalidFieldFormatError,您可以在抓取的字段未通过时引发这些异常验证。

关于python - 计算 scrapy webspider 的覆盖范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26922340/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com