【问题标题】:Xpath for scrapy with atom namespace带有原子命名空间的scrapy的Xpath
【发布时间】:2019-01-04 22:35:25
【问题描述】:

我正在尝试使用 scrapy 从 xml 文件中抓取数据。 文件结构如下:

<feed xml:base="https://example.com/sap/...">
<entry><id>http://example.com/.../idset</id>
<m:properties>
<d:SubID>xyz</d:JobID>
<d:Posting>123456</d:Posting>
<d:Title>BoringTitle</d:Title>
</m:properties>
</entry>
</feed>

在 Scrapy 中,我导入 atom 命名空间:

xxs = XmlXPathSelector(response)
xxs.register_namespace("atom", "http://www.w3.org/2005/Atom")

并且可以提取一些数据

xxs.xpath("//atom:entry").extract()

但是,我发现无法选择带有冒号的数据:

<d:Title>BoringTitle</d:Title>

打印标题的正确 xpath 是什么? 也许有一个简单的答案,我是一名机械工程师,为一个爱好项目做这件事。

任何帮助将不胜感激!

亲切的问候

约翰

【问题讨论】:

  • 你也需要为命名空间前缀d定义一个命名空间。

标签: xpath scrapy namespaces


【解决方案1】:

作为mentioned in the question comments,您还需要为d 添加一个命名空间。

但是,在您的情况下,最好直接 remove all namespaces 并在没有它们的情况下工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-05
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    • 1970-01-01
    相关资源
    最近更新 更多