我正在尝试使用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是什么? 也许有一个简单的答案,我是一名机械工程师,为一个业余项目做这个。
任何帮助将不胜感激!
亲切的问候
约翰
答案 0 :(得分:0)
与mentioned in the question comments一样,您还需要为d
添加一个名称空间。
但是,对于您而言,最好remove all namespaces并在没有它们的情况下工作。