📅  最后修改于: 2023-12-03 15:19:09.202000             🧑  作者: Mango
在Web开发过程中,经常需要从HTML中提取文本内容进行分析、处理或存储。Python提供了多种库实现HTML转换为文本的功能。本文将介绍几种常见的方法。
如果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)
输出结果:
标题
这是一个段落。
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)
输出结果:
标题
这是一个段落。
如果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并提取文本内容。