python中三大数据提取方法(3)----正则表达式re库

2023-11-14

1.什么是正则表达式?

正则就是特定的规则对数据进行过滤,拿到我们想要的数据。在python中爬虫提取数据时re是万能的,所有的数据都可以使用re进行提取。

python正则表达式的使用要借助re模块,安装方法:pip install re

2.正则表达式语法规则

 3.举例说明

# 取出字符串中的整数
str1 = "num12name2age15title666"
re.findall("\d",str1)   
# print结果为["12","2","15","666"]


4.常见的使用方法

#从头找一个
re.match()

#找一个
re.search()

#找所有
re.findall()

#替换
re.sub()

#编译
re.compile()

5.python中原始字符串r的用法

原始字符串定义(raw string):所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符,原始字符串往往针对特殊字符而言。例如"\n"的原始字符串就是"\\n",如果提取的数据中有"\"要在双引号前面加上r转译

6.匹配中文

在某些情况下,我们想匹配文本中的汉字,有一点需要注意的是,中文的 unicode 编码范围 主要在 [u4e00-u9fa5],这里说主要是因为这个范围并不完整,比如没有包括全角(中文)标点,不过,在大部分情况下,应该是够用的。假设现在想把字符串 title = u'你好,hello,世界' 中的中文提取出来,可以这么做:

import re
# 注意点: 中文匹配 需要设置unicode字符才可以匹配

title = u'你好,hello,世界'
pattern = re.compile(ur'[\u4e00-\u9fa5]+')
result = pattern.findall(title)

print result

7.万能表达式:

爬虫中用到re的时候可以使用,适用百分之90以上的数据提取

例如:

data = "</div>

 
<h3 class="product-title">
<a href="//chaoshi.detail.tmall.com/item.htm?id=563432946975&amp;rewcatid=51456012" target="_blank"
atpanel="40,563432946975,50012392,919380521,spu,1,spu,">
  【<span class=H>进口</span>】荷兰荷高有机奶全脂<span class=H>纯</span><span class=H>牛奶</span>整箱1L*6盒装送礼礼盒
</a>
</h3>
   <div class="item-summary">
 <div class="item-sum">
   <span>总销量:</span>
 <strong>14233</strong>
     </div>"
# 提取出总销量
"""
1.复制出需要的数据前后这里是总销量:</span><strong>14233</strong></div>"
2. 将需要的数据替换成(.*?)
"""
re.findall("<strong>(.*?)</strong>")

8.遇到字符串中带()怎么办?

将圆括号放入中括号中,例如:

str1 = windoes__("data":['erte','ertert','ertet','uyty'])
# 提取出字符串中的列表
re.findall("windoes__[(]"data":"(.*?)[)])

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

python中三大数据提取方法(3)----正则表达式re库 的相关文章

随机推荐

  • FreeRTOS之软件定时器

    FreeRTOS之软件定时器 声明 本人按照正点原子的FreeRTOS例程进行学习的 欢迎各位大佬指责和批评 谢谢 include sys h include delay h include usart h include led h in
  • WIN7打开或关闭Windows功能后空白问题解决

    问题描述 打开或关闭Windows功能界面 一片空白 问题如下 解决方法 参考百度出来的几个办法 都无法解决 可能在下的系统的注册表问题比较严重 参考另一个方法 完美解决 windows7打开或关闭Windows功能后空白的问题 下载win
  • Python指南——类

    http blog csdn net ccat article details 8364 译者 至此Python指南的正文部分就全部译完了 感谢Clover姐姐 Sickkid 尹伟铭 面面 珂珂等朋友在翻译过程中给我提供的帮助和支持 特别
  • 用nodejs到底做什么?

    如何解决学了之后无法解决问题的状态 前端的内容很多 有html css javascript三个大模块 但是如何能去解决问题 核心还是根据你的兴趣 或者你根据一个你能看到的实际项目好好研究一下代码 了解其中运作的机制 然后尝试着修改一下代码
  • EduCoder_web实训作业--CSS样式规则

    由于时间关系 我只写第四题啦 2020 12 31 已将缺失关卡补全 第一关 B D C A B 第二关 h1 style font family 楷体 text align center line height 2 静夜思 h1 h2 s
  • Pandas数据处理与分析

    文章目录 前言 1 导入数据 2 审阅数据 3 数据预处理 4 数据分析 5 pandas数据可视化 这里不再过多的讲解pandas可视化 因为pandas中的数据可视化已经可以满足我们大部分的要求了 也就省下了我们很多自己使用 如 mat
  • flume实验

    1 上传flume ng 1 5 0 cdh5 3 6 tar gz 至 opt modules cdh 并解压 2 编辑 conf flume env sh export JAVA HOME usr java jdk1 7 0 79 3
  • 串口通信与编程01:串口基础知识

    串口通信与编程01 串口基础知识 串口是串行接口 serial port 的简称 也称为串行通信接口或COM接口 串口通信是指采用串行通信协议 serial communication 在一条信号线上将数据一个比特一个比特地逐位进行传输的通
  • Nginx学习笔记3【老男孩教育】

    Nginx模块使用 autoindex网站列表功能 下载功能子配置文件 修改nginx子配置文件 限制模块 认证模块 创建用户名和密码 状态模块 location功能 Goaccess日志分析 模块总结
  • 华为OD机试真题 Java 实现【最小的调整次数】【2023Q1 100分】

    一 题目描述 有一个特异性的双端队列 该队列可以从头部或尾部添加数据 但是只能从头部移出数据 小A依次执行2n个指令往队列中添加数据和移出数据 其中n个指令是添加数据 可能从头部添加 也可能从尾部添加 依次添加1到n n个指令是移出数据 现
  • 小学期-中期总结报告

    实训中期总结报告 一 人文 本次实训采取讲练结合的方式 四次讲座分别介绍了实训整体要求安排 开发环境与流程 实验板的硬件电路 单片机原理 随着进度循序渐进 在实践方面 参观贴片整体流程 自己动手焊接电路板 下载实例进行学习 各个案例按照I
  • 使用 npm link 测试本地编写的 node 模块 / 引入全局安装的 node 模块

    目录 1 npm install VS npm install g 2 npm install g 的本质 映射脚本的作用 3 如何测试使用未发布的 npm 包 npm link 原理 4 link 到项目 4 1 全局 link 4 2
  • 2023最新51单片机毕设选题推荐

    文章目录 1前言 2 STM32 毕设课题 3 如何选题 3 1 不要给自己挖坑 3 2 难度把控 3 3 如何命名题目 4 最后 1前言 更新单片机嵌入式选题后 不少学弟学妹催学长更新STM32和C51选题系列 感谢大家的认可 来啦 以下
  • 常见排序算法的时间复杂度、空间复杂度、稳定性比较

    常见排序算法的时间空间复杂度 稳定性比较 一 排序算法比较 注 1 归并排序可以通过手摇算法将空间复杂度降到O 1 但是时间复杂度会提高 2 基数排序时间复杂度为O N M 其中N为数据个数 M为数据位数 二 辅助记忆 1 时间复杂度记忆
  • vue中页面自动刷新

    当我们在做项目时 我们需要做当前页面的刷新来达到数据更新的目的 在此大概总结了几种常用的页面刷新的方法 1 window location reload 是原生JS提供的方法 this router go 0 是vue路由里面的一种方法 这
  • 在Ubuntu上搭建samba服务器实现文件共享

    通常情况下Ubuntu通过开启共享文件夹只能实现Windows和Ubuntu的文件共享 而在Ubuntu上搭建samba服务器则可以实现同一局域网下不同操作系统文件共享 实现更多便捷操作 以下总结了在Ubuntu上搭建samba服务器的具体
  • Android7.1 使用ToolBar, XML文件报错 androidx.appcompat.widget.Toolbar, was not found in the project解决方案

    完整报错信息 Class referenced in the layout file androidx appcompat widget Toolbar was not found in the project or the librari
  • 爬虫实战—轻松爬取全国40城5000+地铁站点数据!附源码和数据集

    原文链接 小一教你轻松爬取全国40城5000 地铁站点数据 附源码和数据集 大家好 我是小一 上一篇文章讲了一个失败的数据分析案例 导致失败最最主要的原因就两个字 数据 有时候 爬虫爬到的数据是很珍贵 很稀缺 但是在实际项目最好还是多点谨慎
  • Netty网络编程(二):架构概述

    文章目录 简介 netty架构图 丰富的Buffer数据机构 统一的API 事件驱动 其他优秀的特性 总结 简介 Netty为什么这么优秀 它在JDK本身的NIO基础上又做了什么改进呢 它的架构和工作流程如何呢 请走进今天的netty系列文
  • python中三大数据提取方法(3)----正则表达式re库

    1 什么是正则表达式 正则就是特定的规则对数据进行过滤 拿到我们想要的数据 在python中爬虫提取数据时re是万能的 所有的数据都可以使用re进行提取 python正则表达式的使用要借助re模块 安装方法 pip install re 2