web-scraping -
标记后的 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 中加载完整的值?
解决方案
您需要获取所有的 innerhtml 而不是包含所有嵌套组件的文本。
loader.add_css('some', 'span.number *::text')
推荐阅读
- python - 无法读取在线提供的 pdf 文件的特定页面的内容
- php - 使用 domcrawler (Goutte) 获取抓取图像的大小
- php - 不能一次修改一次而不会出现奇怪的错误
- html - 修改另一个元素的 CSS 悬停效果不起作用
- c++ - 应用于整数类型的 `std::isfinite()` 的编译时优化
- javascript - 当一个参数有多个值时,我们如何使用 DS findAll 进行过滤?
- sql - 如何在有或没有加入的情况下更新视图?
- firemonkey - 只读取文本文件的最后一行(C++ Builder)
- android - 如何在Android中实现循环检查/勾选动画?
- vue.js - Vue.js 和 Bootstrap Modal - 调用 JS