page contents

html2text,一个非常好用的 Python 库!

在当今互联网时代,HTML格式的网页内容随处可见,但在很多场景下我们需要将这些HTML内容转换为更简洁、更易读的纯文本或Markdown格式。html2text是一个功能强大的Python第三方库,专门用于将HTML文档转换为Markdown格式的纯文本。该库由Aaron Swartz开发,具有出色的HTML解析能力和丰富的自定义选项,广泛应用于网页内容抓取、文档转换、邮件处理等领域。

attachments-2025-08-E9MriW22689fe1bb296d2.jpg在当今互联网时代,HTML格式的网页内容随处可见,但在很多场景下我们需要将这些HTML内容转换为更简洁、更易读的纯文本或Markdown格式。html2text是一个功能强大的Python第三方库,专门用于将HTML文档转换为Markdown格式的纯文本。该库由Aaron Swartz开发,具有出色的HTML解析能力和丰富的自定义选项,广泛应用于网页内容抓取、文档转换、邮件处理等领域。

安装

1、安装方法

html2text库可以通过pip轻松安装,执行以下命令即可完成安装:

pip install html2text

2、验证安装

安装完成后,可以通过以下代码验证是否安装成功:

import html2text

print(html2text.__version__)

如果能正常输出版本号,说明安装成功。

主要特性

智能HTML解析:能够准确解析各种复杂的HTML结构

Markdown输出:将HTML内容转换为标准的Markdown格式

丰富的配置选项:支持多种自定义配置,如忽略链接、处理图片等

Unicode支持:完美支持中文等多语言字符

邮件处理:特别优化了对HTML邮件的处理能力

轻量级:库文件小巧,依赖简单

基本功能

1、基础HTML转换

html2text最基本的功能是将HTML字符串转换为Markdown格式。这个功能特别适用于处理网页抓取后的内容清理,或者将富文本编辑器生成的HTML内容转换为更简洁的Markdown格式。通过简单的几行代码,就能实现高质量的格式转换。

import html2text

# 创建HTML2Text实例

h = html2text.HTML2Text()

# 准备HTML内容

html_content = """

<h1>这是标题</h1>

<p>这是一个段落,包含<strong>加粗文字</strong>和<em>斜体文字</em>。</p>

<ul>

    <li>列表项1</li>

    <li>列表项2</li>

</ul>

"""

# 转换为Markdown

markdown_text = h.handle(html_content)

print(markdown_text)

2、处理链接和图片

在实际应用中,HTML内容经常包含链接和图片元素。html2text库能够智能地处理这些元素,将链接转换为Markdown链接格式,将图片转换为图片引用格式。

import html2text

h = html2text.HTML2Text()

html_with_media = """

<p>访问<a href="https://www.python.org">Python官网</a>了解更多信息。</p>

<img src="https://example.com/image.jpg" alt="示例图片">

"""

result = h.handle(html_with_media)

print(result)

高级功能

1、自定义配置选项

html2text提供了丰富的配置选项,允许用户根据具体需求定制转换行为。可以控制是否忽略链接、是否保留图片、设置文本宽度等。

import html2text

h = html2text.HTML2Text()

# 配置选项

h.ignore_links = True# 忽略链接

h.ignore_images = True# 忽略图片

h.body_width = 0# 不限制行宽

h.ignore_emphasis = False# 保留强调格式


html_content = """

<h2>产品介绍</h2>

<p>我们的<strong>新产品</strong>具有<em>革命性</em>的特性。</p>

<a href="http://example.com">了解更多</a>

<img src="image.jpg" alt="产品图片">

"""


result = h.handle(html_content)

print(result)

2、批量处理文件

在实际项目中,经常需要批量处理多个HTML文件,通过结合文件操作,可以实现高效的批量转换功能。

import html2text

import os


def batch_convert_html_files(input_dir, output_dir):

    h = html2text.HTML2Text()

    h.body_width = 0

    

    # 确保输出目录存在

    ifnot os.path.exists(output_dir):

        os.makedirs(output_dir)

    

    # 遍历输入目录中的HTML文件

    for filename in os.listdir(input_dir):

        if filename.endswith('.html'):

            input_path = os.path.join(input_dir, filename)

            output_path = os.path.join(output_dir, filename.replace('.html', '.md'))

            

            with open(input_path, 'r', encoding='utf-8') as f:

                html_content = f.read()

            

            markdown_content = h.handle(html_content)

            

            with open(output_path, 'w', encoding='utf-8') as f:

                f.write(markdown_content)

    

    print(f"批量转换完成,共处理文件: {len(os.listdir(input_dir))} 个")


# 使用示例

# batch_convert_html_files('html_files', 'markdown_files')

总结

html2text是一个功能强大且易于使用的Python库,为HTML到Markdown的转换提供了完善的解决方案。不仅支持基础的HTML解析和转换功能,还提供了丰富的配置选项来满足不同场景的需求。无论是简单的文本提取,还是复杂的批量文档处理,html2text都能胜任。其轻量级的特性和出色的Unicode支持使其成为处理多语言HTML内容的理想选择。

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

  • 发表于 2025-08-16 09:41
  • 阅读 ( 24 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1335 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 2172 文章
  3. Pack 1335 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章