python etree xpath_Python 基于lxml.etree实现xpath查找HTML元素

本文介绍了如何使用Python的lxml库中的etree模块通过XPath语法来查找HTML文档中的元素。通过示例代码展示了如何解析HTML字符串,获取特定节点以及遍历和输出元素内容。
摘要由CSDN通过智能技术生成

基于lxml.etree实现xpath查找HTML元素

By:授客 QQ:1033553122

#实践环境

WIN 10

Python 3.6.5

#实践代码

#!/usr/bin/env python

# -*- coding:utf-8 -*-

from lxml import etree

html_str = '''

消费项目....一月二月
衣服$241.10$50.20
化妆品$30.00$44.45
食物$730.40$650.00
总计$1001.50$744.65

'''

root_node = etree.HTML(html_str) # 解析HTML字符串,并返回HTML根结点

print('根节节点名称为:%s' % root_node.tag) # 输出 html

# 查找根节点

print(root_node.xpath('/html')) # 输出 ]

tr_element_list = root_node.xpath("//table/tr[2]/td") # 获取table元素节点下,第二个tr元素节点下的所有td元素

for element in tr_element_list:

print(element.tag, element.text)

/* for循环输出如下

td 衣服

td $241.10

td $50.20

*/

etree.tostring(root_node, encoding='utf-8').decode('utf-8') ## 输出节点内容

second_tr = root_node.xpath('//table/tr[2]')[0] # 获取table元素节点下,第二个tr元素节点

print(etree.tostring(second_tr, encoding='utf-8').decode('utf-8')) ## 输出节点内容

/*

衣服$241.10$50.20

*/

# 注意:etree.tostring返回结果为字节对象

print(etree.tostring(second_tr)) ## 输出以下内容

/*

b'

\n 衣服\n $241.10\n $50.20\n \n '

*/

print(etree.tostring(second_tr).decode('utf-8')) # 输出以下内容

/*

衣服$241.10$50.20

*/

#参考连接

https://lxml.de/tutorial.html#the-element-class

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值