如何删除下载页面中的所有HTML标签
我用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。