如何利用xpath获取节点中html文本?


代码:


 abstract =sel.xpath('//div[@id="abstractBox"]/p/text()').extract()

我想获取 <p> </p> 之间的html文本。

但是里面含有html符号,类似 Fe<sub>3</sub> ,按照以上代码,只能获取 Fe ,得不到 <sub>3</sub>

如何解决?

谢谢!!

xpath python

尼古拉.特斯拉 9 years, 5 months ago

没猜错的话
用的Scrapy?

sel.xpath() 得到的依旧是一个SelectorList

参看原文档


 xpath(query)
Find nodes matching the xpath query and return the result as a SelectorList instance with all elements flattened. List elements implement Selector interface too.

query is a string containing the XPATH query to apply.

那么实际上就是去看Selector 相关的函数了。

————————————————


 <p>
    AA
    <sub>1</sub>
    <sub>2</sub>
    <sub>3</sub>
</p>

<p>
    BB
    <sub>1</sub>
    <sub>2</sub>
    <sub>3</sub>
</p>

对于上述例子,其实可以考虑获取到p之后,对其内容再进行一次查找,即可获得 1 、2 、3的内容。

另外
提问的话把自己的环境、代码描述全一点会对自己更有帮助

kenro answered 9 years, 5 months ago

Your Answer