python去除html标签的方法

作者: admin 分类: python 发布时间: 2022-07-31 01:42

在采集的过程中,需要去除掉被采集内容的多余HTML标签,通过搜索,找到这么一段代码(自己修改了一下):

html = '<p>你好</p><br/><font a=  img= >哈哈</font><b>大家好</b>呵呵'

pattern = r'<[^>]+>'

result = re.sub(pattern,'', html)

print(result)

这个代码中正则表达式就是:

pattern = r'<[^>]+>'

这个代表什么呢?

”^”这个字符是在中括号”[]”中被使用的话就是表示字符类的否定,如:

[^a]表示“匹配除了a的任意字符”。

[^a-zA-Z0-9]表示“找到一个非字母也非数字的字符”。

[\^abc]表示“找到一个插入符或者a或者b或者c”。

例如正则表达式[^269A-Z],将匹配除了2、6、9和所有大写字母之外的任何字符。那么:

pattern = r'<[^>]+>'

就是匹配除了>之外的任何字符。而任何的HTML标签就是类似于:<>这样的,所以可以匹配掉所有的HTML代码。

如果我要保留段落标签(<p></p>)怎么办呢?

通过测试,可以这么写:

html = '<p>你好</p><br/><font a=  img= >哈哈</font><b>大家好</b>呵呵'

pattern = r'<[^p?]+>'

result = re.sub(pattern,'', html)

print(result)

新的问题是:如果要去掉HTML标签,但是却保留段落P标签,换行标签b(当然也可能是strong加强标签等)应该怎么写?

标签:

相关文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Powered by 草根站长笔记 © 2015-2020 草根站长笔记 Inc.版权所有,禁止转载