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

代码:

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

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

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

如何解决?

谢谢!!

阅读 14.1k
2 个回答

没猜错的话
用的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的内容。

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

新手上路,请多包涵

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题