我已经使用urlopen下载了一个页面。如何从中删除所有html标签?是否有任何正则表达式替换所有< *>标签
答案 0 :(得分:34)
我还可以推荐BeautifulSoup这是一个易于使用的html解析器。在那里你会做类似的事情:
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(html)
all_text = ''.join(soup.findAll(text=True))
这样您就可以从html文档中获取所有文本。
答案 1 :(得分:10)
有一个很棒的python库叫做漂白剂。下面的调用将删除所有html标记,保留其他所有内容(但不删除不可见的标记内的内容)。
bleach.clean(thestring, tags=[], attributes={}, styles=[], strip=True)
答案 2 :(得分:3)
试试这个:
import re
def remove_html_tags(data):
p = re.compile(r'<.*?>')
return p.sub('', data)
答案 3 :(得分:3)
如果您需要HTML解析,Python会为您提供a module!
答案 4 :(得分:1)
你可以使用html2text,它应该是一个HTML源代码的可读文本(用Python编程或作为命令行工具)。 因此,我可以从你的问题中推断出你的需求......
答案 5 :(得分:0)
有多个选项可从数据中过滤出html标签。您可以使用Regex或核心python。但使用简单的方法:
import remove_tags
data_to_remove = '<p>hello\t\t, \tworld\n</p>'
print remove_tags(data_to_remove)
输出:世界你好
答案 6 :(得分:-1)
一个非常简单的正则表达式是:
import re
notag = re.sub("<.*?>", " ", html)
此解决方案的缺点是它不会删除javascript或css,而只删除标记。