gpt4 book ai didi

python - 使用 Python 从 HTML 文件中提取文本

转载 作者:IT老高 更新时间:2023-10-28 11:04:20 24 4
gpt4 key购买 nike

我想使用 Python 从 HTML 文件中提取文本。如果我从浏览器复制文本并将其粘贴到记事本中,我希望得到的输出基本相同。

我想要比使用在格式不佳的 HTML 上可能失败的正则表达式更强大的东西。我见过很多人推荐 Beautiful Soup,但我在使用它时遇到了一些问题。一方面,它拾取了不需要的文本,例如 JavaScript 源代码。此外,它不解释 HTML 实体。例如,我希望 '在 HTML 源代码中转换为文本中的撇号,就像我将浏览器内容粘贴到记事本中一样。

Update html2text 看起来很有希望。它正确处理 HTML 实体并忽略 JavaScript。但是,它并不完全生成纯文本。它会产生 Markdown ,然后必须将其转换为纯文本。它没有示例或文档,但代码看起来很干净。


相关问题:

最佳答案

我发现的最好的一段代码,用于在不获取 javascript 或不需要的东西的情况下提取文本:

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")

# kill all script and style elements
for script in soup(["script", "style"]):
script.extract() # rip it out

# get text
text = soup.get_text()

# break into lines and remove leading and trailing space on each
lines = (line.strip() for line in text.splitlines())
# break multi-headlines into a line each
chunks = (phrase.strip() for line in lines for phrase in line.split(" "))
# drop blank lines
text = '\n'.join(chunk for chunk in chunks if chunk)

print(text)

你只需要在之前安装 BeautifulSoup :

pip install beautifulsoup4

关于python - 使用 Python 从 HTML 文件中提取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/328356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com