gpt4 book ai didi

python - 使用 ItemLoader 但在 Scrapy 中添加 XPath、值等

转载 作者:行者123 更新时间:2023-12-01 04:43:02 25 4
gpt4 key购买 nike

目前我正在使用 XPathItemLoader 来抓取数据:

def parse_product(self, response):
items = []
l = XPathItemLoader(item=MyItem(), response=response)
l.default_input_processor = MapCompose(lambda v: v.split(), replace_escape_chars)
l.default_output_processor = Join()
l.add_xpath('name', 'div[2]/header/h1/text()')
items.append(l.load_item())
return items

并且需要 v.split() 来删除一些空格 - 这工作正常。

但是我现在如何添加时间呢?

l.add_value('time', time())

只会导致错误:

exceptions.AttributeError: 'float' object has no attribute 'split'

最佳答案

这是因为您正在设置默认输入和输出处理器,该处理器适用于所有项目字段,包括时间,它是一个浮点

您有多种选择:

  • 使用特定于字段的处理器而不是默认处理器:

    l.name_in = MapCompose(lambda v: v.split(), replace_escape_chars)
    l.name_out = Join()
  • 将时间转换/格式化为字符串:

    l.add_value('time', str(time()))
  • 保留默认处理器不变并配置Identity输入和输出处理器:

    l.time_in = Identity()
    l.time_out = Identity()

关于python - 使用 ItemLoader 但在 Scrapy 中添加 XPath、值等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30140574/

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