python爬取内容剔除nbsp_Python正则获取、过滤或者替换HTML标签的方法

2023-10-27

本文实例介绍了Python通过正则表达式获取,去除(过滤)或者替换HTML标签的几种方法,具体内容如下

python正则表达式关键内容:

python正则表达式转义符:

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

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

\s 匹配任意的空白符

\d 匹配数字

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

^ 匹配字符串的开始

$ 匹配字符串的结束

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

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

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

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

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

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

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

*重复零次或更多次

+重复一次或更多次

?重复零次或一次

{n}重复n次

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

{n,m}重复n到m次

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

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

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

前向界定 (?<=…)

后向界定 (?=…)

前向非界定 (?

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

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

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

#!/usr/bin/env python

#-*- coding: utf8 -*-

import re

html = """

多云

"""

if __name__ == '__main__':

p = re.compile(']+>')

print p.sub("", html)

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

#!/usr/bin/env python

#-*- coding: utf8 -*-

import re

html = """

14℃

"""

if __name__ == '__main__':

p = re.compile(']+>')

print p.sub("", html)

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

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

import re

##过滤HTML中的标签

#将HTML中标签等信息去掉

#@param htmlstr HTML字符串.

def filter_tags(htmlstr):

#先过滤CDATA

re_cdata=re.compile('//]*//\]\]>',re.I) #匹配CDATA

re_script=re.compile(']*>[^',re.I)#Script

re_style=re.compile(']*>[^',re.I)#style

re_br=re.compile('
')#处理换行

re_h=re.compile('?\w+[^>]*>')#HTML标签

re_comment=re.compile('')#HTML注释

s=re_cdata.sub('',htmlstr)#去掉CDATA

s=re_script.sub('',s) #去掉SCRIPT

s=re_style.sub('',s)#去掉style

s=re_br.sub('\n',s)#将br转换为换行

s=re_h.sub('',s) #去掉HTML 标签

s=re_comment.sub('',s)#去掉HTML注释

#去掉多余的空行

blank_line=re.compile('\n+')

s=blank_line.sub('\n',s)

s=replaceCharEntity(s)#替换实体

return s

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

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

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

#@param htmlstr HTML字符串.

def replaceCharEntity(htmlstr):

CHAR_ENTITIES={'nbsp':' ','160':' ',

'lt':'

'gt':'>','62':'>',

'amp':'&','38':'&',

'quot':'"','34':'"',}

re_charEntity=re.compile(r'?(?P\w+);')

sz=re_charEntity.search(htmlstr)

while sz:

entity=sz.group()#entity全称,如>

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

try:

htmlstr=re_charEntity.sub(CHAR_ENTITIES[key],htmlstr,1)

sz=re_charEntity.search(htmlstr)

except KeyError:

#以空串代替

htmlstr=re_charEntity.sub('',htmlstr,1)

sz=re_charEntity.search(htmlstr)

return htmlstr

def repalce(s,re_exp,repl_string):

return re_exp.sub(repl_string,s)

if __name__=='__main__':

s=file('169it.com_index.htm').read()

news=filter_tags(s)

print news

以上就是本文的全部内容,希望对大家的学习有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python爬取内容剔除nbsp_Python正则获取、过滤或者替换HTML标签的方法 的相关文章

  • linux文件操作常见考题_linux试题

    1 当登录Linux时 一个具有唯一进程ID号的shell将被调用 这个ID是什么 B A NID B PID C UID D CID 2 用vi打开一个文件 如何用字母 new 来代替字母 old A A s old new g B s
  • js中null、NaN和undefined的区别

    1 js中null NaN和undefined的区别 在js 中未定义的值 是null 定义未赋值为undefined null 为特殊的一种object NAN 为特使一种number 数据类型
  • 【python】基础课程 在这里哦

    推荐一些Python学习资料 如果你是准备学习Python或者正在学习 下面这些你应该能用得上 Python所有方向的学习路线图 清楚各个方向要学什么东西 100多节Python课程视频 涵盖必备基础 爬虫和数据分析 100多个Python
  • pysot训练自己数据集

    pysot如何训练网络呢 有没有人知道呢 咱们可以互相交流
  • 【通信基础】通信基础、编码&&调制

    https www jianshu com p 128c1157eb97 原文地址 1 通信基础 编码 调制 1 物理层的基本概念 物理层解决如何在连接各种计算机的传输媒体上传输数据比特流 而不是指具体的传输媒体 物理层的主要任务 确定与传
  • python水印倾斜_python中图像特定位置的水印算法

    目前我正在处理一个图像处理项目 在这个项目中 我需要将图像分割成几个片段 然后在每个片段上应用水印 在 我写了一个代码 通过掩蔽将图像分成几段 您可以找到代码here 现在我想在每个片段上实现水印 水印教程可以在here找到 在 我该怎么做
  • LeetCode--初级算法--数组篇--第二题--买卖股票的最佳时机 II

    GitHub地址 题目 给定一个数组 它的第 i 个元素是一支给定股票第 i 天的价格 设计一个算法来计算你所能获取的最大利润 你可以尽可能地完成更多的交易 多次买卖一支股票 注意 你不能同时参与多笔交易 你必须在再次购买前出售掉之前的股票
  • 淘宝SEO珍贵笔记

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 分享淘宝SEO技术 讲诉如何使用 关键词 带来百万IP流量 大家都有目共睹淘宝七月八号改变规则后引发了不少争议 后面所引起的众多卖家 围攻 淘宝之事也不仅发生过一次了 还有
  • 如何解决vcruntime140.dll找不到的问题?两种方法教你解决

    当你在运行某些应用程序或游戏时 可能会遇到一个错误提示 即 找不到vcruntime140 dll 文件 这是因为你的电脑中缺少了这个动态链接库文件 这个问题可能会导致你无法正常使用某些应用程序 在本文中 我们将介绍两种方法来解决 目录 一
  • 树莓派安装Ubuntu22.04后使用X86_Linux交叉编译Qt5+opencv4

    文章目录 准备工作 环境搭建 准备编译 未完待续 准备工作 树莓派安装Ubuntu 直接从官网下载对应的镜像烧写工具下载地址 工具里面准备好了对应的镜像地址 直接烧写入SD卡就行了 进入系统 ubuntu server22 04默认密码应该
  • k8s 使用GlusterFS做持久化存储

    一 创建GlusterFS 首先找几台主机做GlusterFS存储 这里用了3台主机 10 244 0 10 10 244 0 11 10 244 0 12 安装GlusterFS 安装过程如下 安装 gluster 源 yum insta
  • 【数据结构】图解八大排序(上)

    文章目录 一 排序简介 二 直接插入排序 三 希尔排序 四 直接选择排序 五 堆排序 六 冒泡排序 七 冒泡排序与直接插入排序效率对比 一 排序简介 生活中 我们经常能看到排序的应用 例如 我们在网购商品的时候 经常按销量从高到低排序 常见
  • C语言经典100例题(38)--求一个3 * 3矩阵对角线元素之和

    目录 题目 问题分析 代码 测试结果 题目 求一个3 3矩阵对角线元素之和 问题分析 利用双重for循环控制输入二维数组 再将 a i i 累加后输出 代码 include
  • SpringBoot2.x使用缓存注解操作Redis

    为了进一步简化 Redis 的使用 Spring还提供了缓存注解 使用这些注解可以有效简化编程过程 缓存管理器和缓存的启用 Spring 在使用缓存注解前 需要配置缓存管理器 缓存管理器将提供一些重要的信息 如缓存类型 超时时间等 Spri
  • 低代码开发工具到底是给“谁”用的?

    不同的工具 受众也不一样 你不要认为 低代码开发工具 只有一种 实际上它分 3 种 第一种 企业级低代码开发平台 这种通常是给专业开发人员使用的 但也没有限制得很死 只要你懂编程逻辑 能写sql语句 就基本会用 就连专业的产品经理也可以用来
  • Vue实现多文件上传功能(前端 + 后端代码)

    开发项目的时候 用到文件上传的功能很常见 包括单文件上传和多文件上传 上传各种类型的文件 在vue里面要实现多文件上传功能 还是很方便的 本文就一起来学习一下 如何把多文件上传功能封装成一个组件 后面需要使用的时候 直接两三行代码就能搞定
  • 已解决(Python爬虫requests报错)requests.exceptions.ProxyError: HTTPSConnectionPool

    成功解决 Python爬虫requests报错 requests exceptions ProxyError HTTPSConnectionPool 文章目录 报错信息 报错翻译 报错原因 解决方法 千人全栈VIP答疑群联系博主帮忙解决报错
  • Unix域编程流程简单梳理

    文章目录 Unix域编程作用 Unix域编程流程 Unix域编程的地址格式 Unix编程注意事项 Unix编程简单示例 客户端实例 服务端实例 Unix域编程作用 Unix域编程用于同一台主机内部的进程之间的客户端 服务端通信 使用和网络s
  • 什么是LTS、Alpha、Beta、Dev、Release、Patch版本,软件的开发周期有多少种命名

    根据Wikipedia 2023 Software release life cycle显示 软件的开发周期版本命名有以下几种 Pre alpha Dev Alpha Beta Perpetual beta Open and closed

随机推荐

  • Boyer-Moore 投票算法(摩尔投票法)

    摩尔投票法简单来说就是在不影响或者增大众数在整个数组中的地位的情况下去消除无关数字带来的影响 只需遍历一遍数组即可找到众数 算法流程 先随机假设一个数x为候选数 可以假设数组的第一个数 并尝试维护一个count计数器 开始设置为0 设置了众
  • GPT系列训练与部署——Colossal-AI环境配置与测试验证

    Colossal AI框架主要特色在于对模型进行并行训练与推理 多GPU 从而提升模型训练效率 可快速实现分布式训练与推理 目前 该框架已集成很多计算机视觉 CV 和自然语言处理 NLP 方向的算法模型 特别是包括GPT和Stable Di
  • Hbuilder We're sorry

    当Webview窗口加载错误地址 如本地页面不存在 或者访问网络资源失败 如无法访问网络 时会自动显示默认错误页面 可以通过以下方法自定义Webview的404等错误页面 设置应用全局默认错误页面 5 App和wap2app 在应用的man
  • OSPF从初学到放弃 2.1

    本来要开开心心写博客的 结果刚刚看见之间知乎上的两个评论被要求修改 两篇评论都是关于同一个问题的 我都有理由怀疑是资本的力量太强大了 说好的舆论自由呢 一群骗子 好气好气好气 OSPF协议及作业 前言 一 OSPF是什么 仔细说一下 二 聊
  • 一小时入门Python爬虫,连我都会了!Python爬取租房数据实例

    一 什么叫爬虫 爬虫 又名 网络爬虫 就是能够自动访问互联网并将网站内容下载下来的程序 它也是搜索引擎的基础 像百度和GOOGLE都是凭借强大的网络爬虫 来检索海量的互联网信息的然后存储到云端 为网友提供优质的搜索服务的 二 爬虫有什么用
  • 【算法系列篇】二分查找——这还是你所知道的二分查找算法吗?

    文章目录 前言 什么是二分查找算法 1 二分查找 1 1 题目要求 1 2 做题思路 1 3 Java代码实现 2 在排序数组中查找元素的第一个和最后一个位置 2 1 题目要求 2 2 做题思路 2 3 Java代码实现 3 搜索插入位置
  • USB MSC类存储设备及FatfsR0.14移植

    USB MSC类存储设备及FatfsR0 14移植 效果演示 配置说明 USB MSC类配置 FatFs移植 FatFs的配置 驱动接口 FatFs测试 USB MSC驱动接口完善 效果演示 这里演示了 FatFs挂载SPI Flash设备
  • java中的锁(基础篇)

    乐观锁和悲观锁 悲观锁 适合写操作多的场景 先加锁可以保证写操作时的数据正确 乐观锁 实际开发 Synchronized关键字 悲观锁 加了后同一时间有且只有一个线程可以进入锁内 1 修饰实例方法 作用于当前实例对象加锁 进入同步代码前要获
  • ReinHard颜色迁移

    看到颜色迁移 觉得还蛮有意思的 遂简单看了一下 代码实现好像有错误 但是不知道错误出在哪里 算法参考 https blog csdn net sin geek article details 22443537 https blog csdn
  • SD卡的控制方法与时序

    1 1 SD卡的命令格式 SD卡的指令由6字节 Byte 组成 如下 Byte1 0 1 x x x x x x 命令号 由指令标志定义 如CMD39为100111即16进制0x27 那么完整的CMD39第一字节为01100111 即0x2
  • [Numpy] mgrid与ogrid

    文章目录 numpy mgrid numpy ogrid numpy mgrid numpy lib index tricks nd grid的替代 在给定范围内返回一个ndarray 是网格上的点 import numpy as np 起
  • webpack安装和使用及超详细配置一个基本vue项目的全部流程(包括路由、less、引入图片渲染)

    文章目录 一 搭建一个简单的webpack项目 1 准备工作 2 初始化项目 3 安装并使用webpack 1 使用npm语句安装webpack和webpack cli 2 检测是否安装成功 需要注意点是由于webpack并不是全局安装的
  • 【BMC】简介

    什么是BMC 在介绍BMC之前需要了解一个概念 即平台管理 platform management 平台管理表示的是一系列的监视和控制功能 操作的对象是系统硬件 比如通过监视系统的温度 电压 风扇 电源等等 并做相应的调节工作 以保证系统处
  • Linux配置sar服务

    Linux配置sar服务 下面以suse 为例 其他系统类似 检查是否有安装sar服务 sar服务包含在sysstat软件包中 rpm qa grep sysstat 如果没有安装执行下面的命令安装 zypper install sysst
  • OCR-APP开发总结(一)

    一 解决删除 运行模式 布局的问题 1 直接将对应的xml部分删除 2 将 Java中MainActivity中引用对应的ID部分删除 并将运行模式的值默认 3 效果图 二 裁剪方法 方法1 android自带的crop进行裁剪 缺点 裁剪
  • Spring MVC类型转换的相关说明

    转自 Spring MVC类型转换的相关说明 下文讲采用示例的方式 讲述相关类型说明 如下所示 insert jsp页面的代码如下
  • C++ 命名空间 & 模板

    命名空间 为了区分不同库中相同名称的函数 类 变量等 引入概念 命名空间 它可作为附加信息来帮助区分它们 使用了命名空间即定义了上下文 本质上就是定义了一个范围 定义命名空间 命名空间的定义使用关键字 namespace 后跟命名空间的名称
  • python实现从零搭建图书管理系统

    学习目标 tornado入门学习 异步服务器学习 异步数据库操作 一 虚拟环境 1 1 虚拟环境的创建 mkvirtualenv tornado py3 p python3 1 2 安装tornado pip install tornado
  • QT学习(一)—— 第一个QT项目

    1 1 新建一个项目 添加项目名称 选择Qwidget类 暂时不选择Generate form那个 补充 这里介绍了一下widget mainWindow dialog三种类的关系 编译器用QT自带的 创建完毕 1 2 项目介绍 1 2 1
  • python爬取内容剔除nbsp_Python正则获取、过滤或者替换HTML标签的方法

    本文实例介绍了Python通过正则表达式获取 去除 过滤 或者替换HTML标签的几种方法 具体内容如下 python正则表达式关键内容 python正则表达式转义符 匹配除换行符以外的任意字符 w 匹配字母或数字或下划线或汉字 s 匹配任意