python解析html基础操作
目录
一、前提
二、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基础操作相关推荐
- python 30个基础操作
运行环境 : python 3.6.0 今天来一个基础操作 ... 1.冒泡排序 lis = [56, 12, 1, 8, 354, 10, 100, 34, 56, 7, 23, 456, 234, ...
- 【Linux】 Jetbot、Dofbot机器人如何创建、执行python脚本+Linux基础操作
文章目录 一.Jetbot.dofbot机器人创建执行python脚本方法 1.1 引言 1.2 通过SSH协议传输文件 1.2.1 Mobaxterm的下载安装 1.2.2 Mobaxterm创建s ...
- python学习——numpy基础操作
numpy 基础操作 1 创建数组 2 数组常用属性和函数 3 数组元素增删 4 元素查找 5 数学运算 6 数组切片 1 创建数组 import numpy as np #以后numpy简写为np ...
- Python笔记_34_MySQL基础操作
文章目录 MySQL基础操作 mysql 客户端 登录 mysql 服务器 mysql 设置密码 创建账户 用户授权(创建用户的同时,也授予权限) SQl语句 配置linux my.cnf MySQL ...
- python文件的基础操作
import osprint('\n','获取当前工作目录'.center(40,'-')) print(os.getcwd())print('\n','获取当前工作目录中的内容'.center(40 ...
- python新手入门基础操作谨记这5点_Python大牛指点新手之:掌握这5点,可以快速从入门到进阶!...
Python是一种完全开放源码的语言,代码可以随意读取给任何人.这种方法可以帮助人们找到更好.简洁和简洁的代码,并在许多方面节省不必要的时间,因为它适合直接应用或简化.经常看的好源码,不仅能让你学习别 ...
- Python文档基础操作
直接用例子来记录. 使用random中的randint()生成1-100的随机数,产生相对应的ASCII码,然后将满足大小写.数字和特殊符号(\n.\r.*.&.$.!)等字符写入word.t ...
- python 多层嵌套 json_python解析多层json操作示例
本文实例讲述了python解析多层json操作.分享给大家供大家参考,具体如下: 原始文件内容: { "MaskPolygonItem": { "0": { & ...
- python解析json多层_python解析多层json操作示例
本文实例讲述了python解析多层json操作.分享给大家供大家参考,具体如下: 原始文件内容: { "MaskPolygonItem": { "0": { & ...
最新文章
- mysql db 复制_MySQL管理工具MySQL Utilities — mysqldbcopy(6)
- Docker启动失败提示【exec user process caused: exec format error】
- 通过配置文件添加MIME类型
- 恒强制版系统980_恒功率、大功率及无线充电,充电设备面临哪些趋势和挑战?...
- 前端工程师的摸鱼日常(15)
- WE出海增长图书馆 | 世界杯豪门面纱下,不容忽视的【增长】沃土
- 率土之滨服务器维修,率土之滨征服赛季合服与转服功能详解
- 测试工作中必备技能---思维导图你会吗? 10分钟让你精通思维导图!!!
- leetcodeLCP 19. 秋叶收藏集/动态规划
- 解决nodemon : 无法加载文件 C:\Users\admin\AppData\Roaming\npm\nodemon.ps1
- upload-labs之第一关
- [SSIS] 之十: SSIS百度详解
- 10-199 C2-1修改订单运费
- 磁盘清理中的Windows更新清理
- DICOM:fo-dicom之C-STORE再分析‘解决System.ObjectDisposedException异常’
- 思想决定生活 -《卡耐基成功之道全书》读书笔记
- HDU 多校联合第三场
- Git 相关配置 用户名、邮箱
- 【EoSL】Introduction
- 中科院邮箱服务器地址,关于院邮件系统登陆异常及使用通知
热门文章
- java逻辑运算符试题_Java逻辑运算符(、||和!)
- 云存储及分布式创新应用笔记一
- Java 创建对象的 6 种方式,总有一种适合你
- 计算机正常充电环境温度范围,笔记本电脑的充电突然变得很慢怎么了?给1%的电池充电只需7到8分钟...
- Node下载安装步骤
- 若依后台管理系统打包后,icon图标乱码
- 基于Opencv的抠图
- MySQL数据库——字符函数
- ansible-playbook基于角色一键交付wordpress+zrlog+phpmyadmin项目
- 壁纸小程序云开发 -- 分享心得