python之XPath的使用

安装

pip install lxml

使用

from lxml import etree

selector=etree.HTML(源码) #将源码转化为能被XPath匹配的格式

selector.xpath(表达式) #返回为一列表

语法

  • // 双斜杠。定位根节点,会对全文进行扫描,在文档中选取所有符合条件的内容,以列表的形式返回。
  • / 单斜杠。寻找当前标签路径的下一层路径标签或者对当前路标签内容进行操作
  • /text() 。获取当前路径下的文本内容
  • /@xxxx 。提取当前路径下标签的属性值
  • | 可选符 。使用|可选取若干个路径 如//p | //div 即在当前路径下选取所有符合条件的p标签和div标签。
  • . 点 。用来选取当前节点
  • .. 双点。 选取当前节点的父节点
  • starts-with(@属性名称,属性字符相同部分)。如content=selector.xpath(‘//div[starts-with(@id,”a”)]/text()’) #这里使用starts-with方法提取div的id标签属性值开头为a的div标签
  • string(.) 标签套标签。获取标签内嵌套的标签内容,如info=data.xpath(‘string(.)’)
  • 数组过滤。如ul[3][@id=”a”] 这里使用【3】来寻找第三个ul标签 并且它的id属性值为a
  • 文本定位。如sel.xpath(‘//div[text()=”hello”]/p[posision()=2]/text()’),获取div标签中text值为hello的div标签里面的第二个p标签的文本。
Author: bkdwei