【问题标题】:Scrapy: Keyerror even when the items are clearly definedScrapy:即使项目已明确定义,也会出现 Keyerror
【发布时间】:2018-11-05 10:22:59
【问题描述】:

此抓取工具已完成,应该可以正常工作,但是这些项目似乎未定义,并且在尝试抓取时会产生 keyerror。它是一个非常简单的蜘蛛,只有 2 个项目。

spider.py

items.py

scrapy shell

我一遍又一遍地查看它的结构方式,但似乎找不到代码有什么问题。项目似乎定义明确,刮板运行但产生错误。

这里的任何帮助或建议将不胜感激!

【问题讨论】:

  • 这不是在类中设置变量的方式吗?
  • 请不要链接到您的代码图片,因为如果代码以纯文本形式嵌入到您的问题中,其他人会更容易帮助您。

标签: python scrapy field items keyerror


【解决方案1】:

您正在创建一个空的 BestbuyscraperItem 类。如果您在scrapy repo 看到代码,除非您传递参数,否则项目类会创建一个空字典。并且 setitem 在设置值时会抛出键错误。

你应该这样做

title = extract title 
price = extract price 
item = BestbuyscraperItem(title=title , price=price )

example

【讨论】:

    【解决方案2】:

    检查字段是否设置,只需检查项目实例中的字段键。您可能应该检查您的 xpath

    【讨论】:

      【解决方案3】:

      我使用 Scrapy 已经 4 年多了,从来没有使用过Items class

      在你的情况下,就这样做

      item = {}
      item['title'] = SOMETHING_HERE
      item['price'] = SOMETHING_HERE
      yield item
      

      【讨论】:

        猜你喜欢
        • 2017-06-06
        • 2013-05-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-26
        • 2020-07-27
        相关资源
        最近更新 更多