如何删除下载页面中的所有HTML标签

9 投票
7 回答
22797 浏览
提问于 2025-04-16 01:57

我用urlopen下载了一个网页。请问我该怎么去掉里面所有的HTML标签呢?有没有什么正则表达式可以用来替换掉所有的<*>标签?

7 个回答

11

有一个很棒的Python库叫做 bleach。下面这个代码可以去掉所有的HTML标签,保留其他内容(不过不会删除那些看不见的标签里面的内容)。

bleach.clean(thestring, tags=[], attributes={}, styles=[], strip=True)
40

我还可以推荐一个叫做 BeautifulSoup 的工具,它是一个使用起来很简单的 HTML 解析器。你可以这样做:

from BeautifulSoup import BeautifulSoup

soup = BeautifulSoup(html)
all_text = ''.join(soup.findAll(text=True))

这样你就能从一个 HTML 文档中获取所有的文本内容。

-4

一个非常简单的正则表达式是:

import re
notag = re.sub("<.*?>", " ", html)

这个方法的缺点是,它只会去掉标签,而不会删除JavaScript或CSS。

撰写回答