python_xpath

        xpath(xml path language) 是一种用于在xml文档中定位和选择元素的语言.可以使用lxml 库来执行xpath的查询.

 1. 原理

        1.1 实例化一个etree的对象,且需要将被解析的页面源码数据加载到该对象中

        1.2 调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和内容的捕获

2. 使用
2.1 安装
pip install lxml
2.2 实例化etree对象
from lxml import etree

将本地的html文档中的源码数据加载到etree对象中

etree.parse(filePath)

tree = etree.parse("./test.html")

从互联网上获取的源码加载到对象中

etree.HTML('page_text')

#示例
page_text=requests.get(url=url).text
etree.HTML('page_text')
3. xpath表达式
# /   表示从根节点开始定位,表示一个层级
# //  表示多个层级.可以从任意位置开始定位
# //* 选择所有的元素

属性定位://div[@class='man'] tag[@attrName="attrValue"]
索引定位://div[@class="man"]/p[6] 索引是从1开始的。
#获取网页中html标签下head标签下的title标签的文本内容
print(tree.xpath("/html/head/title/text()"))

#获取div标签中class="man"的文本内容
print(tree.xpath("//div[@class='man']//text()"))

#以列表的形式获取div标签下class="man"标签为p下id为3的文本内容
print(tree.xpath("//div[@class='man']/p[3]/text()"))

#以列表的形式获取div标签下class="man"的id为5的li标签下id为0的a标签的内容
print(tree.xpath("//div[@class='man']//li[5]/a/text()")[0])

#以列表的形式获取html页面中id=7的li标签的文本内容
print(tree.xpath('//li[7]//text()')[0])

#以列表的形式获取html页面中div标签下class="man"下id=1的a标签属性值
print(tree.xpath('//div[@class="song"]/a[1]/@href')[0])
3.1 取文本
/text() #获取的是标签中的直系文本内容
//text() #标签中非直系文本内容(所有的文本内容)
3.2 取属性
/@attrName    #img/src
3.3 去非文本
@href  #取url地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值