用于原子命名空间的scrapy的Xpath

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用于原子命名空间的scrapy的Xpath相关的知识,希望对你有一定的参考价值。

我试图使用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打印标题?也许有一个简单的答案,我是一个机械工程师这样做的业余爱好项目。

任何帮助,将不胜感激!

亲切的问候

约翰

以上是关于用于原子命名空间的scrapy的Xpath的主要内容,如果未能解决你的问题,请参考以下文章

SimpleXML 中的 XPath 用于默认命名空间,无需前缀

查找 XML 文档中的所有命名空间声明 - xPath 1.0 与 xPath 2.0

XPATH 帮助:使用 XPathNodeIterator 在命名空间中查找 XML 节点

为啥命名空间限定节点没有 XPath 语法?

如何使用 XPath 忽略命名空间

Scrapy Spider没有返回所有元素