【问题标题】:scrapy not exporting data to elastic searchscrapy不将数据导出到弹性搜索
【发布时间】:2015-09-09 02:20:19
【问题描述】:

我想在 ElasticSearch 中索引我的项目,我找到了this

但如果我试图抓取一个网站,我会收到以下错误:

文件“/usr/lib/python2.7/dist-packages/twisted/internet/defer.py”,第 577 行,在 _runCallbacks current.result = callback(current.result, *args, **kw) 文件“/usr/local/lib/python2.7/dist-packages/scrapyelasticsearch/scrapyelasticsearch.py​​”,第 70 行,在 process_item self.index_item(项目) 文件“/usr/local/lib/python2.7/dist-packages/scrapyelasticsearch/scrapyelasticsearch.py​​”,第 52 行,在 index_item local_id = hashlib.sha1(item[uniq_key]).hexdigest() getitem 中的文件“/home/javed/.local/lib/python2.7/site-packages/scrapy/item.py”,第 50 行 返回 self._values[key] exceptions.KeyError: 'url'

【问题讨论】:

    标签: search scrapy elasticsearch


    【解决方案1】:

    我只是在我的 settings.py 文件中注释了这个字段(根据official documentation,这个字段是可选的)

    #ELASTICSEARCH_UNIQ_KEY = 'url'  # Custom unique key
    

    【讨论】:

      【解决方案2】:

      由于您没有粘贴您的蜘蛛代码,我只能假设一些事情。 一种假设是您没有在项目中设置所需的文件。他们需要在ELASTICSEARCH_UNIQ_KEY 中指定一个字段,并且它必须是唯一的。最简单的可能是使用url:

      # somewhere deep in your callback, 
      # where you create and yield your item
      ...
      myitem['url'] = response.url
      return myitem
      

      并确保设置在settings.py:

      ELASTICSEARCH_UNIQ_KEY = 'url'
      

      【讨论】:

        猜你喜欢
        • 2015-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-29
        • 2014-03-17
        • 1970-01-01
        • 1970-01-01
        • 2017-03-24
        相关资源
        最近更新 更多