目录

一、前提

二、html内容转换

三、元素的获取

1.获取html所有标签节点

2.查找指定标签的所有节点

3.查找指定属性名称的节点

4.查找指定标签名称的内容

5.查找指定标签的父节点

6.查找指定标签的所有属性的值

7.查找指定标签和属性的节点

8.查找指定标签,属性和属性值的节点

9.查找指定标签,有多个属性的节点

10.查找指定标签,单个属性有多个值的节点



一、前提

已获取到html文件,已安装lxml库,元素的获取方式主要通过xpath,并且对xml文件也适用

二、html内容转换

将html的内容转换成字符串

from lxml import etree
#将html文档转换成字符串对象
with open(r"C:\Users\Administrator\Desktop\test_python\html\regression2.html",encoding="utf-8") as f:content = " ".join([r.rstrip() for r in f])

三、元素的获取

1.获取html所有标签节点

#查找所有html的所有标签节点,返回结果为列表
html=etree.HTML(content,etree.HTMLParser())
result=html.xpath("//*")
print("result:",result)

2.查找指定标签的所有节点

#查找所有标签名为name的所有节点
html=etree.HTML(content,etree.HTMLParser())
result=html.xpath("//name")
print("result:",result)

3.查找指定属性名称的节点

#查找具有属性值sex的节点
html=etree.HTML(content,etree.HTMLParser())
result=html.xpath("//@sex//..")
print("result:",result)

4.查找指定标签名称的内容

#查找所有标签名为name的内容
html=etree.HTML(content,etree.HTMLParser())
result=html.xpath("//name//text()")
print("result:",result)

5.查找指定标签的父节点

#查找所有标签为updated的父节点,返回结果为列表
html=etree.HTML(content,etree.HTMLParser())
result=html.xpath("//updated/..")
print("table:",result)

6.查找指定标签的所有属性的值

如果有多个标签名称都为name,则统计他们所有的属性值

#查找所有标签名为name的所有属性值
html=etree.HTML(content,etree.HTMLParser())
result=html.xpath("//name//@*")
print("result:",result)

7.查找指定标签和属性的节点

#查找所有标签名为name,且具有属性sex的所有节点
html=etree.HTML(content,etree.HTMLParser())
result=html.xpath("//name[@sex]")
print("result:",result)

8.查找指定标签,属性和属性值的节点

#查找所有标签名为name,属性sex的值为male的所有节点
html=etree.HTML(content,etree.HTMLParser())
result=html.xpath("//name[@sex='male']")
print("result:",result)

9.查找指定标签,有多个属性的节点

#查找标签名为name,同时具有属性sex="male",age="30"
html=etree.HTML(content,etree.HTMLParser())
result=html.xpath(" //name[contains(@sex,'male') and @age='30']")
print("result:",result)

10.查找指定标签,单个属性有多个值的节点

#查找标签名为name,属性age有多个值,其中有一个值为40
html=etree.HTML(content,etree.HTMLParser())
result=html.xpath('//name[contains(@age,"40")]')
print("result:",result)

python解析html基础操作相关推荐

  1. python 30个基础操作

    运行环境 : python 3.6.0 今天来一个基础操作 ... 1.冒泡排序 lis = [56, 12, 1, 8, 354, 10, 100, 34, 56, 7, 23, 456, 234, ...

  2. 【Linux】 Jetbot、Dofbot机器人如何创建、执行python脚本+Linux基础操作

    文章目录 一.Jetbot.dofbot机器人创建执行python脚本方法 1.1 引言 1.2 通过SSH协议传输文件 1.2.1 Mobaxterm的下载安装 1.2.2 Mobaxterm创建s ...

  3. python学习——numpy基础操作

    numpy 基础操作 1 创建数组 2 数组常用属性和函数 3 数组元素增删 4 元素查找 5 数学运算 6 数组切片 1 创建数组 import numpy as np #以后numpy简写为np ...

  4. Python笔记_34_MySQL基础操作

    文章目录 MySQL基础操作 mysql 客户端 登录 mysql 服务器 mysql 设置密码 创建账户 用户授权(创建用户的同时,也授予权限) SQl语句 配置linux my.cnf MySQL ...

  5. python文件的基础操作

    import osprint('\n','获取当前工作目录'.center(40,'-')) print(os.getcwd())print('\n','获取当前工作目录中的内容'.center(40 ...

  6. python新手入门基础操作谨记这5点_Python大牛指点新手之:掌握这5点,可以快速从入门到进阶!...

    Python是一种完全开放源码的语言,代码可以随意读取给任何人.这种方法可以帮助人们找到更好.简洁和简洁的代码,并在许多方面节省不必要的时间,因为它适合直接应用或简化.经常看的好源码,不仅能让你学习别 ...

  7. Python文档基础操作

    直接用例子来记录. 使用random中的randint()生成1-100的随机数,产生相对应的ASCII码,然后将满足大小写.数字和特殊符号(\n.\r.*.&.$.!)等字符写入word.t ...

  8. python 多层嵌套 json_python解析多层json操作示例

    本文实例讲述了python解析多层json操作.分享给大家供大家参考,具体如下: 原始文件内容: { "MaskPolygonItem": { "0": { & ...

  9. python解析json多层_python解析多层json操作示例

    本文实例讲述了python解析多层json操作.分享给大家供大家参考,具体如下: 原始文件内容: { "MaskPolygonItem": { "0": { & ...

最新文章

  1. mysql db 复制_MySQL管理工具MySQL Utilities — mysqldbcopy(6)
  2. Docker启动失败提示【exec user process caused: exec format error】
  3. 通过配置文件添加MIME类型
  4. 恒强制版系统980_恒功率、大功率及无线充电,充电设备面临哪些趋势和挑战?...
  5. 前端工程师的摸鱼日常(15)
  6. WE出海增长图书馆 | 世界杯豪门面纱下,不容忽视的【增长】沃土
  7. 率土之滨服务器维修,率土之滨征服赛季合服与转服功能详解
  8. 测试工作中必备技能---思维导图你会吗? 10分钟让你精通思维导图!!!
  9. leetcodeLCP 19. 秋叶收藏集/动态规划
  10. 解决nodemon : 无法加载文件 C:\Users\admin\AppData\Roaming\npm\nodemon.ps1
  11. upload-labs之第一关
  12. [SSIS] 之十: SSIS百度详解
  13. 10-199 C2-1修改订单运费
  14. 磁盘清理中的Windows更新清理
  15. DICOM:fo-dicom之C-STORE再分析‘解决System.ObjectDisposedException异常’
  16. 思想决定生活 -《卡耐基成功之道全书》读书笔记
  17. HDU 多校联合第三场
  18. Git 相关配置 用户名、邮箱
  19. 【EoSL】Introduction
  20. 中科院邮箱服务器地址,关于院邮件系统登陆异常及使用通知

热门文章

  1. java逻辑运算符试题_Java逻辑运算符(、||和!)
  2. 云存储及分布式创新应用笔记一
  3. Java 创建对象的 6 种方式,总有一种适合你
  4. 计算机正常充电环境温度范围,笔记本电脑的充电突然变得很慢怎么了?给1%的电池充电只需7到8分钟...
  5. Node下载安装步骤
  6. 若依后台管理系统打包后,icon图标乱码
  7. 基于Opencv的抠图
  8. MySQL数据库——字符函数
  9. ansible-playbook基于角色一键交付wordpress+zrlog+phpmyadmin项目
  10. 壁纸小程序云开发 -- 分享心得