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文件的内容:

<html><body><div>    <ul>         <li class="item-0"><a href="link1.html">first itema>li>         <li class="item-1"><a href="link2.html">second itema>li>         <li class="item-inactive"><a href="link3.html"><span class="bold">third itemspan>a>li>         <li class="item-1"><a href="link4.html">fourth itema>li>         <li class="item-0"><a href="link5.html">fifth itema>li>ul> div>body>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)

运行结果如下图所示:

66846c531493d7032aa99d8f7879c13a.png

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)

运行结果如下图所示:

dd3453ad811df3a49e967ee4b32328e0.png

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值