📜  python 将 html 转换为文本 - Python (1)

📅  最后修改于: 2023-12-03 15:19:09.202000             🧑  作者: Mango

Python将HTML转换为文本

在Web开发过程中,经常需要从HTML中提取文本内容进行分析、处理或存储。Python提供了多种库实现HTML转换为文本的功能。本文将介绍几种常见的方法。

1. 使用BeautifulSoup库

如果HTML页面比较简单,可以使用BeautifulSoup库将HTML解析为DOM树,然后使用get_text()方法获取文本内容。

from bs4 import BeautifulSoup

html = '<html><head><title>标题</title></head><body><p>这是一个段落。</p></body></html>'

soup = BeautifulSoup(html, 'html.parser')
text = soup.get_text()

print(text)

输出结果:

标题
这是一个段落。
2. 使用html2text库

html2text库提供了丰富的选项和扩展功能,可以将HTML转换为Markdown格式的文本。可以使用html2text.html2text()方法将HTML转换为文本。

import html2text

html = '<html><head><title>标题</title></head><body><p>这是一个段落。</p></body></html>'

text = html2text.html2text(html)

print(text)

输出结果:

标题

这是一个段落。
3. 使用lxml库

如果HTML页面比较复杂,需要精细的解析和处理,可以使用lxml库。首先使用lxml库将HTML解析为DOM树,然后使用XPath表达式定位到需要的元素,最后使用.text属性获取文本内容。

from lxml import etree

html = '<html><head><title>标题</title></head><body><p>这是一个段落。</p></body></html>'

parser = etree.HTMLParser()
tree = etree.fromstring(html, parser)

title = tree.xpath('//title')[0].text
paragraph = tree.xpath('//p')[0].text

print(title)
print(paragraph)

输出结果:

标题
这是一个段落。

本文介绍了三种常见的方法将HTML转换为文本。其中,使用html2text库可以方便地将HTML转换为Markdown格式的文本。使用BeautifulSoup库和lxml库可以更加灵活地解析HTML并提取文本内容。