使用 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中文网其他相关文章!