首页 >后端开发 >Python教程 >Python 如何高效地从 HTML 中提取纯文本、处理实体和不需要的内容?

Python 如何高效地从 HTML 中提取纯文本、处理实体和不需要的内容?

Patricia Arquette
Patricia Arquette原创
2024-11-29 20:12:11581浏览

How Can Python Efficiently Extract Plain Text from HTML, Handling Entities and Unwanted Content?

使用 Python 从 HTML 中提取纯文本

在从 HTML 文件中检索文本内容时,考虑鲁棒性至关重要正确有效地处理 HTML 实体的方法。虽然使用正则表达式的解决方案可能有限,但像 Beautiful Soup 这样的库提供了更复杂的选项。然而,捕获不需要的文本和实体解释的问题仍然存在。

Beautiful Soup:带有警告的强大工具

Beautiful Soup 是 HTML 解析的流行选择,但它可能会检索 JavaScript 源等其他元素,但无法解释 HTML 实体。例如,序列“源代码中的 不会转换为提取文本中的撇号。

输入 html2text:一个有前途的解决方案

当前,html2text 成为一个引人注目的选项。它可以轻松处理 HTML 实体,并忽略 JavaScript 等不必要的内容。虽然它输出 markdown 而不是纯文本,但可以轻松转换。

强大且可自定义的方法

以下代码片段利用 Beautiful Soup 并提供增强的控制提取过程:

from urllib.request import urlopen
from bs4 import BeautifulSoup

url = "http://news.bbc.co.uk/2/hi/health/2284783.stm"
html = urlopen(url).read()
soup = BeautifulSoup(html, features="html.parser")

# Remove unwanted elements like scripts and styles
for script in soup(["script", "style"]):
    script.extract()

# Extract the text content
text = soup.get_text()

# Preprocess the text for improved readability
lines = (line.strip() for line in text.splitlines())
chunks = (phrase.strip() for line in lines for phrase in line.split("  "))
text = '\n'.join(chunk for chunk in chunks if chunk)

print(text)

通过采用这种方法,您可以有效地提取纯文本,将想要的和不需要的内容处理为根据您的要求。

以上是Python 如何高效地从 HTML 中提取纯文本、处理实体和不需要的内容?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn