xpath获取标签的属性值_网络爬虫库之xpath

XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath基于XML的树状结构,有不同类型的节点,包括元素节点,属性节点和文本节点,提供在数据结构树中找寻节点的能力。起初 XPath 的提出的初衷是将其作为一个通用的、介于XPointer与XSLT间的语法模型。但是 XPath 很快的被开发者采用来当作小型查询语言。[来自360百科] 现在我们使用它对HTML文档进行搜索。

lxml的安装

  lxml库是Python的一个解析库,支持HTML和XML的解析,支持XPath。下面介绍在Windows,Linux和Mac上的安装。安装命令为:

  • pip install lxml

首先给出接下来将要用到的hello.html文件的内容:

xpath的基本用法:

from  lxml import  etree text = ''' 
          baidu         myblog       csdn         hao123 ''' #将字符串解析为html html=etree.HTML(text) print(html)# #将字符串序列化html(可以自动补全代码) result=etree.tostring(html).decode('utf-8') print(result)

运行结果如下图所示:

xpath获取标签的属性值_网络爬虫库之xpath_第1张图片

xpath基本语法:

html=etree.parse('hello.html')#获取所有li标签# result=html.xpath('//li')# print(result)# for i in result:#     print(etree.tostring(i))# #获取所有li元素下的属性值result = html.xpath('//li/@class')print(result)#获取li标签下herf为www.baidu.com的a标签result = html.xpath('//li/a[@herf="www.baidu.com"]')print(result)#获取所有li标签下的span标签:result = html.xpath('//li//span')print(result)#获取li标签下的a标签下的所有classresult = html.xpath('//li/a//@class')print(result)#获取最后一个li的a的href属性对应的值result = html.xpath('//li[last()]/a//@href')print(result)#获取倒数第二个li元素的内容(方法一):result = html.xpath('//li[last()-1]/a')print(result[0].text)#方法二(一般都用这种方式)result = html.xpath('//li[last()-1]/a/text()')print(result)

运行结果如下图所示:

xpath获取标签的属性值_网络爬虫库之xpath_第2张图片

你可能感兴趣的:(xpath获取标签的属性值)