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

时间:2010-07-28 09:22:05

标签: python

我已经使用urlopen下载了一个页面。如何从中删除所有html标签?是否有任何正则表达式替换所有< *>标签

7 个答案:

答案 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,而只删除标记。