繁体   English   中英

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

[英]How to remove all html tags from downloaded page

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

我还可以推荐BeautifulSoup ,它是一个易于使用的html解析器。 在那里你会做类似的事情:

from BeautifulSoup import BeautifulSoup

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

这样您就可以从html文档中获取所有文本。

有一个很棒的python库叫做漂白剂。 下面的调用将删除所有html标记,保留其他所有内容(但不删除不可见的标记内的内容)。

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

如果您需要HTML解析,Python有一个模块供您使用!

试试这个:

import re

def remove_html_tags(data):
  p = re.compile(r'<.*?>')
  return p.sub('', data)

你可以使用html2text ,它应该是一个HTML源代码的可读文本(用Python编程或作为命令行工具)。 因此,我可以从你的问题中推断出你的需求......

有多个选项可以从数据中过滤出html标记。 你可以使用正则表达式或核心python。 但使用简单的方法:

import remove_tags data_to_remove = '<p>hello\\t\\t, \\tworld\\n</p>' print remove_tags(data_to_remove)

输出:你好世界

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

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

此解决方案的缺点是它不会删除javascript或css,而只删除标记。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM