【发布时间】: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