Python操作lxml库(基础篇)
活动地址:CSDN21天学习挑战赛
学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。
学习日记
目录
目录
学习日记
一、lxml库概述
1、lxml库介绍
2、lxml库特点
3、lxml库的安装
二、基本使用
1、lxml.etree
2、解析HTML网页
3、读取并解析HTML文件
三、lxml使用流程
1、 导入模块
2、创建解析对象
四、lxml库数据提取
1、提取所有a标签内的文本信息
2、获取所有href的属性值
3、不匹配href=" www.biancheng.net/priduct"
Python操作lxml库文章集合
一、lxml库概述
1、lxml库介绍
lxml是XML和HTML的解析器,其主要功能是解析和提取XML和HTML中的数据;lxml和正则一样,也是用C语言实现的,是一款高性能的python HTML、XML解析器,也可以利用XPath语法,来定位特定的元素及节点信息。
2、lxml库特点
HTML是超文本标记语言,主要用于显示数据,他的焦点是数据的外观
XML是可扩展标记语言,主要用于传输和存储数据,他的焦点是数据的内容
3、lxml库的安装
windows系统下,在cmd命令提示框中,输入如下命令
pip install lxml
在cmd命令行验证是否安装成功。若引入模块,不返回错误则说明安装成功。
二、基本使用
1、lxml.etree
在爬虫代码采集过程中,通过etree.HTML直接将字符串实例转化为element对象。
import requests from lxml import etreeres = requests.get("http://www.jsons.cn/zt/")html = res.textroot_element = etree.HTML(html)print(root_element) print(root_element.tag)
2、解析HTML网页
#解析HTML字符串 from lxml import etree text = ''' <html><body><div class="key"><div class="name">无羡</div><div class="age">20</div><div class="address">四川</div></div> </body></html> ''' # 开始初始化 html = etree.HTML(text) # 这里需要传入一个html形式的字符串 print(html) print(type) # 将字符串序列化为html字符串 result = etree.tostring(html).decode('utf-8') print(result) print(type(result))
3、读取并解析HTML文件
from lxml import etree# 将html文件进行读取 html = etree.parse('1.html')# 将html内容序列化 result = etree.tostring(html).decode('utf-8') print(result) print(type(result)) html = etree.HTML(result) # 这里需要传入一个html形式的字符串 print(html) print(type)
三、lxml使用流程
1、 导入模块
from lxml import etree
2、创建解析对象
调用 etree 模块的 HTML() 方法来创建 HTML 解析对象。
parse_html = etree.HTML(html)
HTML() 方法能够将 HTML 标签字符串解析为 HTML 文件,该方法可以自动修正 HTML 文本。
from lxml import etree html_str = ''' <div><ul><li class="item1"><a href="link1.html">Python</a></li><li class="item2"><a href="link2.html">Java</a></li><li class="site1"><a href="c.biancheng.net">C语言中文网</a><li class="site2"><a href="www.baidu.com">百度</a></li><li class="site3"><a href="www.jd.com">京东</a></li></ul> </div> ''' html = etree.HTML(html_str)result = etree.tostring(html) print(result.decode('utf-8'))
四、lxml库数据提取
1、提取所有a标签内的文本信息
from lxml import etree # 创建解析对象 parse_html=etree.HTML(html) # 书写xpath表达式,提取文本最终使用text() xpath_bds='//a/text()' # 提取文本数据,以列表形式输出 r_list=parse_html.xpath(xpath_bds) # 打印数据列表 print(r_list)
2、获取所有href的属性值
from lxml import etree # 创建解析对象 parse_html=etree.HTML(html) # 书写xpath表达式,提取文本最终使用text() xpath_bds='//a/@href' # 提取文本数据,以列表形式输出 r_list=parse_html.xpath(xpath_bds) # 打印数据列表 print(r_list)
3、不匹配href=" www.biancheng.net/priduct"
from lxml import etree # 创建解析对象 parse_html=etree.HTML(html) # 书写xpath表达式,提取文本最终使用text() xpath_bds='//a/@href' # 提取文本数据,以列表形式输出 xpath_bds='//ul[@id="sitename"]/li/a/@href' # 打印数据列表 print(r_list)
Python操作lxml库文章集合
Python操作lxml库(基础篇)
Python操作lxml库(Xpath篇)
Python操作lxml库(基础篇)相关推荐
- Python操作lxml库(Xpath篇)
活动地址:CSDN21天学习挑战赛 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩:迟一天就多一天平庸的困扰. 学习日记 目录 学习日记 一.Xpath概述 1.Xpath简介 2. Xpa ...
- python进阶记录之基础篇二十六_Python进阶记录之基础篇(十六)
回顾 在Python进阶记录之基础篇(十五)中,我们介绍了面向对象的基本概念以及Python中类和对象的基础知识,需要重点掌握类的创建和对象的使用.今天我们继续讲一下Python中面向对象的相关知识点 ...
- python添加lxml库_Python lxml库简介
lxml是一个Python库,使用它可以轻松处理XML和HTML文件,还可以用于web爬取.市面上有很多现成的XML解析器,但是为了获得更好的结果,开发人员有时更愿意编写自己的XML和HTML解析器. ...
- (一)JAVA基于OPENXML的word文档插入、合并、替换操作系列之基础篇
(一)JAVA基于OPENXML的word文档插入.合并.替换操作系列之基础篇 前言 什么是Open Xml? Open XML SDK 这系列笔记要做点什么? 涉及技术点 关于word.openxm ...
- python的lxml库简介_Python lxml库简介
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. lxml是一个Python库,使用它可以轻松处理XML和HTML文件,还可以用于web爬取.市面上有很多现 ...
- 最全整理!Python 操作 Excel 库 xlrd与xlwt 常用操作详解!
来源/早起Python 在之前的Python办公自动化系列文章中,我们已经相信介绍了openyxl.xlsxwriter等Python操作Excel库. 相信大家对于几个库的差异与使用场景有了一定的认 ...
- python excel库pip install_超全整理|Python 操作 Excel 库 xlwings 常用操作详解!
原标题:超全整理|Python 操作 Excel 库 xlwings 常用操作详解! 来源:早起Python 作者:陈熹.刘早起 大家好,我是早起. 在之前的文章中我们曾详细的讲解了如何使用openp ...
- Python学习日记-day1基础篇 字符 输出 注释
Python学习日记-day1基础篇 字符 输出 注释 by北栀一刺 # -*- coding: utf-8 -*- """ Spyder EditorThis is a ...
- python操作postgre库,批量进行增删改查和计时比较效率,封装好的普通增删改查和批量增删改查类拿来即用
python操作postgre库,批量进行增删改查,封装类,拿来即用 1. 新建postgre.py文件,使用psycopg2封装普通增删改查和批量增删改查类 postgre.py import ps ...
最新文章
- 剑指offer:连续子数组的最大和
- 科学探索奖首批50名获奖者都有谁?
- 四种常见的系统架构,目前你处于哪个阶段呢?
- mysql左连接丢失null值的问题
- CUDA,C++,Java,Python,Fortran运行速度比较
- html运行代码出现问号乱码_Java 0基础入门(初识Html)
- 2026年,数据中心电力市场将达到150亿美元
- java注解 @SuppressWarnings注解用法
- eMMC基础技术2:eMMC概述
- 17.敏捷项目管理流程实例 - 整体流程框架
- python将pdf转成excel_wpspdf转换成excel Python转换PPT为PDF
- 使用C语言绘制一个笑脸smile
- 蓝桥杯2017国赛 瓷砖样式 dfs+hush
- 组件分享之后端组件——阿里妈妈前端团队出品的开源接口管理工具RAP第二代rap2-delos...
- 从零学习Fluter(八):Flutter的四种运行模式--Debug、Release、Profile和test以及命名规范...
- 装机大神:教你看明白cpu后边数字及字母的意思。
- 服务进程无法连接到服务控制器上_魔兽世界 无法连接服务 暴雪游戏agent进入睡眠模式。。。。...
- TCP/UDP 端口
- 微信公众号项目开发笔记 一
- 2022.5.16-5.22 AI行业周刊(第98期):人生路上的打怪升级