【问题标题】:Scrapy Ignore values after <br> tag<br> 标签后的 Scrapy 忽略值
【发布时间】:2021-01-09 12:25:46
【问题描述】:

HTML:

<span class="number"> - Sep 15, 1991<br><strong>Some Number: </strong>123, 123, 145</span>

Scrapy:

 samples = response.css('ul li.somthing')
    for sample in samples:
        loader = ItemLoader(item=CatelogItem(), selector=sample)
        loader.add_css('some', 'span.number::text')
        yield loader.load_item()

Item.py

some = Field(
    input_processor=MapCompose(str.strip),
    output_processor=Join()
)

结果

- Sep 15, 1991

预期

- Sep 15, 1991 Some Number: 123, 123, 145

为什么会出现这种行为?如何在 itemloader 中加载完整的值?

【问题讨论】:

  • 你的意思是,loader.add_css('some', 'span.number::innerHtml') 结果是:伪元素::innerhtml 未知
  • 是的.. 非常感谢。就像魅力一样。修复:loader.add_css('some', 'span.number *::text')
  • 我将把它记下来并投票并勾选答案

标签: web-scraping scrapy scrapy-shell


【解决方案1】:

您需要获取所有的 innerhtml 而不是包含所有嵌套组件的文本。

loader.add_css('some', 'span.number *::text')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 1970-01-01
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    相关资源
    最近更新 更多