python小白学习记录 运用lxml的xpath解析html文件

复制代码
 1 from lxml import etree
 2 text = "<div><p>nmsl</p><span>nmsl</span></div>"
 3 def htmlstree(text):
 4     html = etree.HTML(text)
 5     result = etree.tostring(html)
 6     print(result)
 7     return result.decode('utf-8')
 8 #解析html字符串并且会为标签自动加上<html><body></body></html>
 9 def parseetree():
10     parser = etree.HTMLParser(encoding='utf-8')
11     html = etree.parse("index111.html",parser=parser)
12     result = etree.tostring(html,encoding='utf-8').decode("utf-8")
13     print(result)
14 #解析xml 由于某写html标签会不全用普通的xml解析器会出错 如<br/>  所以要指定html解析器
15 if __name__ == '__main__':
16     parseetree()
复制代码

以上为etree的使用范例

分别解析了html字符串和html文件

 


复制代码
from lxml import etree
def parseetree():#找到包含onclick和id属性的a标签
    parser = etree.HTMLParser(encoding='utf-8')
    html = etree.parse("index111.html",parser=parser)
    trs = html.xpath("//a[@onclick][@id]")
    for tr in trs:
        result = etree.tostring(tr,encoding='utf-8').decode("utf-8")
        print(result)
def parseetree1():#找到包含onclick和id属性的a标签中的第4个,即[3]
    parser = etree.HTMLParser(encoding='utf-8')
    html = etree.parse("index111.html",parser=parser)
    tr = html.xpath("//a[@onclick][@id]")[3]
    result = etree.tostring(tr,encoding='utf-8').decode("utf-8")
    print(result)
def parseetree2():#找到包含onclik和id属性的a标签中的id的值  和  文本的值
    parser = etree.HTMLParser(encoding='utf-8')
    html = etree.parse("index111.html",parser=parser)
    trs = html.xpath("//a[@onclick][@id]/@id")
    for tr in trs:
        print(tr)
    trs2 = html.xpath("//a[@onclick][@id]/text()")
    for tr in trs2:
        print(tr)
if __name__ == "__main__":
    parseetree()
    print("***************")
    parseetree1()
    print("***************")
    parseetree2()
复制代码

 

以上为运用xpath来对html进行解析

以下是运行结果

 

 

 附:https://www.w3school.com.cn/xpath/xpath_syntax.asp          xpath语法

 

posted @   jswf  阅读(736)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示