活动地址: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库(基础篇)相关推荐

  1. Python操作lxml库(Xpath篇)

    ​ 活动地址:CSDN21天学习挑战赛 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩:迟一天就多一天平庸的困扰. 学习日记 目录 学习日记 一.Xpath概述 1.Xpath简介 2. Xpa ...

  2. python进阶记录之基础篇二十六_Python进阶记录之基础篇(十六)

    回顾 在Python进阶记录之基础篇(十五)中,我们介绍了面向对象的基本概念以及Python中类和对象的基础知识,需要重点掌握类的创建和对象的使用.今天我们继续讲一下Python中面向对象的相关知识点 ...

  3. python添加lxml库_Python lxml库简介

    lxml是一个Python库,使用它可以轻松处理XML和HTML文件,还可以用于web爬取.市面上有很多现成的XML解析器,但是为了获得更好的结果,开发人员有时更愿意编写自己的XML和HTML解析器. ...

  4. (一)JAVA基于OPENXML的word文档插入、合并、替换操作系列之基础篇

    (一)JAVA基于OPENXML的word文档插入.合并.替换操作系列之基础篇 前言 什么是Open Xml? Open XML SDK 这系列笔记要做点什么? 涉及技术点 关于word.openxm ...

  5. python的lxml库简介_Python lxml库简介

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. lxml是一个Python库,使用它可以轻松处理XML和HTML文件,还可以用于web爬取.市面上有很多现 ...

  6. 最全整理!Python 操作 Excel 库 xlrd与xlwt 常用操作详解!

    来源/早起Python 在之前的Python办公自动化系列文章中,我们已经相信介绍了openyxl.xlsxwriter等Python操作Excel库. 相信大家对于几个库的差异与使用场景有了一定的认 ...

  7. python excel库pip install_超全整理|Python 操作 Excel 库 xlwings 常用操作详解!

    原标题:超全整理|Python 操作 Excel 库 xlwings 常用操作详解! 来源:早起Python 作者:陈熹.刘早起 大家好,我是早起. 在之前的文章中我们曾详细的讲解了如何使用openp ...

  8. Python学习日记-day1基础篇 字符 输出 注释

    Python学习日记-day1基础篇 字符 输出 注释 by北栀一刺 # -*- coding: utf-8 -*- """ Spyder EditorThis is a ...

  9. python操作postgre库,批量进行增删改查和计时比较效率,封装好的普通增删改查和批量增删改查类拿来即用

    python操作postgre库,批量进行增删改查,封装类,拿来即用 1. 新建postgre.py文件,使用psycopg2封装普通增删改查和批量增删改查类 postgre.py import ps ...

最新文章

  1. 剑指offer:连续子数组的最大和
  2. 科学探索奖首批50名获奖者都有谁?
  3. 四种常见的系统架构,目前你处于哪个阶段呢?
  4. mysql左连接丢失null值的问题
  5. CUDA,C++,Java,Python,Fortran运行速度比较
  6. html运行代码出现问号乱码_Java 0基础入门(初识Html)
  7. 2026年,数据中心电力市场将达到150亿美元
  8. java注解 @SuppressWarnings注解用法
  9. eMMC基础技术2:eMMC概述
  10. 17.敏捷项目管理流程实例 - 整体流程框架
  11. python将pdf转成excel_wpspdf转换成excel Python转换PPT为PDF
  12. 使用C语言绘制一个笑脸smile
  13. 蓝桥杯2017国赛 瓷砖样式 dfs+hush
  14. 组件分享之后端组件——阿里妈妈前端团队出品的开源接口管理工具RAP第二代rap2-delos...
  15. 从零学习Fluter(八):Flutter的四种运行模式--Debug、Release、Profile和test以及命名规范...
  16. 装机大神:教你看明白cpu后边数字及字母的意思。
  17. 服务进程无法连接到服务控制器上_魔兽世界 无法连接服务 暴雪游戏agent进入睡眠模式。。。。...
  18. TCP/UDP 端口
  19. 微信公众号项目开发笔记 一
  20. 2022.5.16-5.22 AI行业周刊(第98期):人生路上的打怪升级

热门文章

  1. 2020.03.08测试题3
  2. C语言调用自定义交换函,通过调用自定义函数来完成求圆柱体的体积
  3. Linux下的MP3播放程序
  4. 车载开发之 CarLife
  5. ElasticSearch - Kibana操作入门
  6. Css margin 和 float浮动
  7. java如何实现群聊_Java实现通过服务器实现客户端之间的简单群聊
  8. 微信公众平台之CURL应用
  9. Tsung笔记之分布式增强跳出SSH羁绊篇
  10. 关于 TCP/IP,必知必会的十个问题