首页 > 解决方案 >
标记后的 Scrapy 忽略值

问题描述

HTML:

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

刮擦:

 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()

项目.py

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

结果

- Sep 15, 1991

预期的

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

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

标签: web-scrapingscrapyscrapy-shell

解决方案


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

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

推荐阅读