热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python正则表达式获取html标签,Python通过正则表达式获取,去除(过滤)或者替换HTML标签的几种方法(本文由169it.com搜集整理)...

python正则表达式关键内容:python正则表达式转义符:.匹配除换行符以外的任意字符\w匹配字母或数字或下划线或汉字\s匹配任意的空白符\d匹配数字\b匹配单词的开始或结束^

python正则表达式关键内容:

python正则表达式转义符:

. 匹配除换行符以外的任意字符

\w 匹配字母或数字或下划线或汉字

\s 匹配任意的空白符

\d 匹配数字

\b 匹配单词的开始或结束

^ 匹配字符串的开始

$ 匹配字符串的结束

\W 匹配任意不是字母,数字,下划线,汉字的字符

\S 匹配任意不是空白符的字符

\D 匹配任意非数字的字符

\B 匹配不是单词开头或结束的位置

[^x] 匹配除了x以外的任意字符

[^aeiou] 匹配除了aeiou这几个字母以外的任意字符

关于python正则表达式命名组:

命名组:(?P.....)

这篇文章里面还提到了界定( 问号开头,前向则有个'

前向界定 (?<&#61;…)

后向界定 (?&#61;…)

前向非界定 (?

后向非界定 (?!.....)

常用的python正则表达式限定符代码/语法说明:

*重复零次或更多次

&#43;重复一次或更多次

?重复零次或一次

{n}重复n次

{n,}重复n次或更多次

{n,m}重复n到m次

Python通过正则表达式获取,去除(过滤)或者替换HTML标签代码举例

Python通过正则表达式取html中天气信息代码示例:

#!/usr/bin/env python

#-*- coding: utf8 -*-

import re

html &#61; """

多云

"""

if __name__ &#61;&#61; &#39;__main__&#39;:

p &#61; re.compile(&#39;]&#43;>&#39;)

print p.sub("", html)

Python通过正则表达式取html中温度信息代码示例:

#!/usr/bin/env python

#-*- coding: utf8 -*-

import re

html &#61; """

14℃

"""

if __name__ &#61;&#61; &#39;__main__&#39;:

p &#61; re.compile(&#39;]&#43;>&#39;)

print p.sub("", html)

Python通过正则表达式去除(过滤)HTML标签示例代码:

# -*- coding: utf-8-*-

import re

##过滤HTML中的标签

#将HTML中标签等信息去掉

#&#64;param htmlstr HTML字符串.

def filter_tags(htmlstr):

#先过滤CDATA

re_cdata&#61;re.compile(&#39;//]*//\]\]>&#39;,re.I) #匹配CDATA

re_script&#61;re.compile(&#39;]*>[^&#39;,re.I)#Script

re_style&#61;re.compile(&#39;]*>[^&#39;,re.I)#style

re_br&#61;re.compile(&#39;
&#39;)#处理换行

re_h&#61;re.compile(&#39;?\w&#43;[^>]*>&#39;)#HTML标签

re_comment&#61;re.compile(&#39;&#39;)#HTML注释

s&#61;re_cdata.sub(&#39;&#39;,htmlstr)#去掉CDATA

s&#61;re_script.sub(&#39;&#39;,s) #去掉SCRIPT

s&#61;re_style.sub(&#39;&#39;,s)#去掉style

s&#61;re_br.sub(&#39;\n&#39;,s)#将br转换为换行

s&#61;re_h.sub(&#39;&#39;,s) #去掉HTML 标签

s&#61;re_comment.sub(&#39;&#39;,s)#去掉HTML注释

#去掉多余的空行

blank_line&#61;re.compile(&#39;\n&#43;&#39;)

s&#61;blank_line.sub(&#39;\n&#39;,s)

s&#61;replaceCharEntity(s)#替换实体

return s

##替换常用HTML字符实体.

#使用正常的字符替换HTML中特殊的字符实体.

#你可以添加新的实体字符到CHAR_ENTITIES中,处理更多HTML字符实体.

#&#64;param htmlstr HTML字符串.

def replaceCharEntity(htmlstr):

CHAR_ENTITIES&#61;{&#39;nbsp&#39;:&#39; &#39;,&#39;160&#39;:&#39; &#39;,

&#39;lt&#39;:&#39;

&#39;gt&#39;:&#39;>&#39;,&#39;62&#39;:&#39;>&#39;,

&#39;amp&#39;:&#39;&&#39;,&#39;38&#39;:&#39;&&#39;,

&#39;quot&#39;:&#39;"&#39;,&#39;34&#39;:&#39;"&#39;,}

re_charEntity&#61;re.compile(r&#39;?(?P\w&#43;);&#39;)

sz&#61;re_charEntity.search(htmlstr)

while sz:

entity&#61;sz.group()#entity全称&#xff0c;如>

key&#61;sz.group(&#39;name&#39;)#去除&;后entity,如>为gt

try:

htmlstr&#61;re_charEntity.sub(CHAR_ENTITIES[key],htmlstr,1)

sz&#61;re_charEntity.search(htmlstr)

except KeyError:

#以空串代替

htmlstr&#61;re_charEntity.sub(&#39;&#39;,htmlstr,1)

sz&#61;re_charEntity.search(htmlstr)

return htmlstr

def repalce(s,re_exp,repl_string):

return re_exp.sub(repl_string,s)

if __name__&#61;&#61;&#39;__main__&#39;:

s&#61;file(&#39;169it.com_index.htm&#39;).read()

news&#61;filter_tags(s)

print news

169IT站内文章除注明原创外&#xff0c;均为转载,整理或搜集自网络.欢迎任何形式的转载&#xff0c;转载请注明出处.

转载请注明&#xff1a;文章转载自:[169IT-最新最全的IT资讯]

本文标题:Python通过正则表达式获取,去除(过滤)或者替换HTML标签的几种方法



推荐阅读
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了一种划分和计数油田地块的方法。根据给定的条件,通过遍历和DFS算法,将符合条件的地块标记为不符合条件的地块,并进行计数。同时,还介绍了如何判断点是否在给定范围内的方法。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
author-avatar
手机用户2602903963
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有