码迷,mamicode.com
首页 > 其他好文 > 详细

Xpath轴与步长应用:取某节点下所有子孙节点里的文本内容

时间:2018-06-09 11:28:57      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:mes   class   需要   namespace   方法   lin   highlight   一个   www   

最近遇到个需求,需要爬一些数据使用,写好了爬虫后爬到了一段HTML,然后用lxml解析,接下来就是定位到具体节点提取内容。遇到了一个问题,想要提取的内容在一个class名为full-content的<div>中,文本内容有可能就在div中,可有可能在子孙节点中,那怎么全部提取呢?查了一下Xpath有轴与步长的用法,

详细用法参考:http://www.w3school.com.cn/xpath/xpath_axes.asp

轴名称结果
ancestor 选取当前节点的所有先辈(父、祖父等)。
ancestor-or-self 选取当前节点的所有先辈(父、祖父等)以及当前节点本身。
attribute 选取当前节点的所有属性。
child 选取当前节点的所有子元素。
descendant 选取当前节点的所有后代元素(子、孙等)。
descendant-or-self 选取当前节点的所有后代元素(子、孙等)以及当前节点本身。
following 选取文档中当前节点的结束标签之后的所有节点。
namespace 选取当前节点的所有命名空间节点。
parent 选取当前节点的父节点。
preceding 选取文档中当前节点的开始标签之前的所有节点。
preceding-sibling 选取当前节点之前的所有同级节点。
self 选取当前节点。

因此:用以下Xpath表达式解决了问题。

"//div[@class="full-content"]/descendant::text()"

  方法二:

Xpath选取多个路径也可以用以下方式实现:

A路径|B路径

  

 

Xpath轴与步长应用:取某节点下所有子孙节点里的文本内容

标签:mes   class   需要   namespace   方法   lin   highlight   一个   www   

原文地址:https://www.cnblogs.com/liangzp/p/9158623.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!