返回顶部
首页 > 资讯 > 后端开发 > Python >Python 文档解析lxml库的使用详解
  • 758
分享到

Python 文档解析lxml库的使用详解

2024-04-02 19:04:59 758人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录1.lxml库简介2.lxml库方法介绍3.代码实例1.lxml库简介 lxml 是 python 常用的文档解析库,能够高效地解析 html/XML 文档,常用于 Python

1.lxml库简介

lxmlpython 常用的文档解析库,能够高效地解析 html/XML 文档,常用于 Python 爬虫

lxml 为第三方库,需要我们通过pip命令安装:

pip install lxml

2.lxml库方法介绍

lxml 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,让我们先导入模块:

from lxml import etree

使用 etree 模块的 HTML() 方法可以创建 HTML 解析对象:

from lxml import etree
parse_html = etree.HTML(html)

HTML() 方法能够将 HTML 标签字符串解析为 HTML 文件,并且可以自动修正 HTML 文本:

from lxml import etree
html_str = '''
<div>
    <ul>
        <li><a href="www.python.org">Python</a></li>
        <li><a href="www.java.com">Java</a>
        <li><a href="www.csdn.net">CSDN</a></li>
    </ul>
</div>
'''

html = etree.HTML(html_str)
# tostring()将标签元素转换为字符串输出,注意:result为字节类型
result = etree.tostring(html)
print(result.decode('utf-8'))

上述代码我故意在Java那一行少写一个</li>,可以看到输出会自动补全:

<html><body><div>
    <ul>
        <li><a href="www.python.org">Python</a></li>
        <li><a href="www.java.com">Java</a></li>
        <li><a href="www.csdn.net">CSDN</a></li>
    </ul>
</div>
</body></html>

解析为 HTML 文件后,我们可以使用 xpath() 方法来提取我们需要的数据了:

from lxml import etree

html_str = '''
<div>
    <ul>
        <li><a href="www.python.org">Python</a></li>
        <li><a href="www.java.com">Java</a></li>
        <li><a href="www.csdn.net">CSDN</a></li>
    </ul>
</div>
'''

html=etree.HTML(html_str)

xpath_bds='//@href'

r_list = html.xpath(xpath_bds)

print(r_list)

xpath() 方法使用一个 XPath 表达式作为参数,上面那段程序提取出了页面里的所有网址。

详细的 XPath 表达式语法,请参见菜鸟教程
https://www.runoob.com/xpath/xpath-syntax.html

3.代码实例

lxml 库在爬虫中的使用大概就是这么多了,接下让我们结合前一篇文章(Python 网页请求:requests库的使用),来写一个普通的爬虫程序吧:

import os
import sys
import requests
from lxml import etree

x = requests.get('Https://www.csdn.net/')


html = etree.HTML(x.text)

xpath_bds = '//img/@src'

img_list = html.xpath(xpath_bds)

# 创建img文件夹
os.chdir(os.path.dirname(sys.argv[0]))

if not os.path.exists('img'):
    os.mkdir('img')
    print('创建文件夹成功')
else:
    print('文件夹已存在')

# 下载图片
for i in range(len(img_list)):
    img = requests.get(img_list[i]).content
    if img_list[i].endswith('.jpg'):
        with open(f'./img/{i}.jpg', 'wb') as f:
            f.write(img)
    elif img_list[i].endswith('.jpeg'):
        with open(f'./img/{i}.jpeg', 'wb') as f:
            f.write(img)
    elif img_list[i].endswith('.png'):
        with open(f'./img/{i}.png', 'wb') as f:
            f.write(img)
    else:
        print(f'第{i + 1}张图片格式不正确')
        continue
    print(f'第{i + 1}张图片下载成功')

这个爬虫程序爬取了CSDN首页的所有.jpg.jpeg.png格式的图片,快来自己尝试一下吧!

到此这篇关于Python 文档解析lxml库的使用的文章就介绍到这了,更多相关Python lxml库内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python 文档解析lxml库的使用详解

本文链接: https://lsjlt.com/news/120409.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python 文档解析lxml库的使用详解
    目录1.lxml库简介2.lxml库方法介绍3.代码实例1.lxml库简介 lxml 是 Python 常用的文档解析库,能够高效地解析 HTML/XML 文档,常用于 Python...
    99+
    2024-04-02
  • Python中Lxml与Xpath解析库如何使用
    本篇文章给大家分享的是有关Python中Lxml与Xpath解析库如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、xpath 概念、xpath节点、xpath语法、x...
    99+
    2023-06-15
  • Python使用lxml解析xpath爬取konachan
    要使用lxml解析xpath来爬取konachan,你可以按照以下步骤进行:1. 首先,确保你已经安装了lxml库。你可以使用以下命...
    99+
    2023-08-22
    Python
  • C#使用AngleSharp库解析html文档
    一、简介 AngleSharp:https://github.com/AngleSharp/AngleSharp AngleSharp是一个.NET库,使您能够解析基于尖括号的超文本...
    99+
    2024-04-02
  • C#如何使用AngleSharp库解析html文档
    这篇“C#如何使用AngleSharp库解析html文档”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C#如何使用Angle...
    99+
    2023-07-02
  • python怎么爬虫lxml库解析xpath网页
    这篇文章主要介绍“python怎么爬虫lxml库解析xpath网页”,在日常操作中,相信很多人在python怎么爬虫lxml库解析xpath网页问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python怎么爬...
    99+
    2023-06-30
  • python 中 lxml 的 etree 标签解析
    目录一、安装二、创建标签三、添加子节点四、删除子节点五、删除所有子节点六、操作子节点七、获取父节点八、创建属性九、获取属性十、设置标签文本十一、xpath方法十二、判断文本类型十三、...
    99+
    2024-04-02
  • 如何使用lxml进行XML文档的数据库存储和检索
    使用lxml库可以方便地对XML文档进行数据库存储和检索操作。下面是使用lxml库进行XML文档的数据库存储和检索的基本步骤: 导...
    99+
    2024-05-15
    lxml
  • python爬虫lxml库解析xpath网页过程示例
    目录前言(一)xpath是什么(二)xpath的基本语法 路径查询。(三) lxml库(四)lxml库的使用 导入lxml.etree(五)实例演示前言 在我们抓取网页内容的时候,通...
    99+
    2024-04-02
  • Java API文档的使用方法详解
    目录前言1. 概念2. 使用总结前言 学会使用 API 文档是一个开发者基本的素养,而许多初学者并不会在意 API 文档的使用,甚至从来没有接触过,所以写下这篇文章探讨 API 文档...
    99+
    2023-02-01
    java api文档使用方法 java的api文档 java api接口文档
  • Python加密word文档详解
    目录Python加密word文档总结Python加密word文档 我们先了解一下异或是什么。简单来说,如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。我们简单的梳理一下代码思路。代码分为两...
    99+
    2022-06-02
    Python 加密word文档
  • 详解Swagger接口文档和常用注解的使用
    目录一、Spring整合Swagger二、swagger常用注解说明 1、@Api的使用说明2、@ApiOperation的使用说明3、@ApiParam的使用说明4、@A...
    99+
    2022-11-13
    Swagger接口文档 Swagger 常用注解使用 Swagger 注解
  • python 网页解析器掌握第三方 lxml 扩展库与 xpath 的使用方法
    今天说的则是使用另外一种扩展库 lxml 来对网页完成解析。同样的,lxml 库能完成对 html、xml 格式的文件解析,并且能够用来解析大型的文档、解析速度也是相对比较快的。 要...
    99+
    2024-04-02
  • python网页解析器掌握第三方lxml扩展库与xpath的使用示例
    这篇文章将为大家详细讲解有关python网页解析器掌握第三方lxml扩展库与xpath的使用示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、导入 lxml 扩展库、并创建对象# -*-&n...
    99+
    2023-06-14
  • python munch库的使用解析
    目录1. 安装方法2. 简单示例3. 兼容字典的所有操作4. 设置返回默认值5. 工厂函数自动创建key6. 序列化的支持字典是 Python 中基础的数据结构之一,字典的使用,可以说是非常的简单粗暴,但即便是这样一...
    99+
    2022-06-02
    python munch munch库的使用
  • C#使用HtmlAgilityPack组件解析html文档
    一、HtmlAgilityPack介绍 参考: GitHub:https://github.com/zzzprojects/html-agility-pack/releases 官网...
    99+
    2024-04-02
  • python urllib库的使用详解
    目录1、请求模块:urllib.request data参数:post请求urlopen()中的参数timeout:设置请求超时时间:响应类型:响应的状态码、响应头:使用代理:url...
    99+
    2024-04-02
  • Python jiaba库的使用详解
    目录jiaba库的使用1、jieba库的安装2、统计荷塘月色词频总结jiaba库的使用 jieba库是一款优秀的 Python 第三方中文分词库,jieba 支持三种分词模式:精确模...
    99+
    2024-04-02
  • Python数据分析之Numpy库的使用详解
    目录前言🧡Numpy库介绍💙ndarray 类常用属性💚Numpy常用函数🍓array函数🥝arang...
    99+
    2024-04-02
  • Python操作word文档的示例详解
    目录写在前面创建一个文档先实现第一步,写入一个标题添加文字段落列表的添加图片的添加表格添加相关样式设置页眉和页脚写在前面 python-docx 不支持 doc 文档,一定要注意该点...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作