• 最新活动
  • 产品
    • 云计算

      云服务器 热销

      高速稳定高弹性的计算服务

      负载均衡

      高性能流量分发的负载均衡服务

      对象存储

      高可用、易扩展、低成本、一站式

      云数据库 MySQL

      稳定可靠、可弹性伸缩的数据方案

      云数据库 SQL Server

      安全运行、轻松管理的数据方案

    • 网站服务

      云虚拟主机 热销

      基于云计算的虚拟主机服务

      域名注册 火爆进行中

      提供主流域名注册服务

      CDN加速

      智能调度的内容分发服务

      短信服务

      提供专业、稳定、安全的云通信产品

      华为云代理

      华为云高折扣高返点

    • IDC服务

      服务器托管

      安全贴心高品质的托管服务

      裸金属服务器

      高性能安全隔离物理集群服务

      大带宽

      专有网络传输通道,完全隔离

      壹站邦分销系统

      一键部署、低成本、快速运营

      阿里云代理

      阿里云新购升级皆有返点

    • 安全与管理

      SSL证书 热销

      提供一站式的证书部署服务

      云监控

      精准灵活超便捷的资源预警服务

      网站备案

      免费、快速、便捷的备案服务

      DDOS高防 防不住包退

      一秒切换,无需更换IP,误伤率可降为0

  • 保障
    • 信任中心 >

      基础设施与网络

      服务保障能力

      数据安全

      合规资质

    • 数据中心 >

      中国内蒙数据中心

      中国大连数据中心

      中国深圳数据中心

      中国香港数据中心

    • VIP会员服务 >

      7*24小时服务支持

      0元快速备案

      100倍故障赔偿

      5天无理由退款

    • 防诈骗公益宣传 >

      行为识别

      安全防范

      典型案例

      法律法规

  • 解决方案
    • 行业解决方案

      网站解决方案

      游戏云解决方案

    •  

      金融云解决方案

    •  

      电商云解决方案

    •  

      移动云解决方案

  • 帮助中心
  • 腾讯云
    • 腾讯云

      腾讯云优惠 上云最佳选择

      腾讯云最新的促销打折、腾讯云优惠折扣

      腾讯云服务器

      腾讯云服务器(CVM)为您提供安全可靠的弹性云计算服务

      腾讯云数据库

      腾讯云数据库是腾讯云提供的高可靠、高可用、可弹性伸缩的云数据库服务产品的总称

      腾讯云轻量服务器

      腾讯云轻量应用服务器是一种易于使用和管理、适合承载轻量级业务负载的云服务器

      腾讯云GPU服务器

      AI加速 科学计算 实时渲染首选,让AI更有温度,体验身临其境

    • 腾讯云

      美颜特效

      腾讯云美颜特效SDK、API

      实时音视频

      腾讯云实时音视频SDK、API

      直播SDK

      腾讯云直播SDK、API

      即时通信IM

      腾讯云即时通信IM、聊天SDK、API

      人脸核身

      腾讯云人脸核身SDK、API

    • 腾讯云

    • 腾讯云

      腾讯云服务支持

      一站式服务,安心购,无忧用

    • 腾讯云

      服务支持

      一站式服务,安心购,无忧用

  • 关于我们
  • 备案
  • 控制台
-
  • 前往实名认证 >
  • 账户余额 -元
  • 产品管理 -
  • 未支付订单 -
  • 我的工单 -
  • 新消息 -
  • 退出账号
账号登录 快速注册

关于我们

质量为本、客户为根、勇于拼搏、务实创新

  • 公司简介
  • 新闻公告
  • 联系我们
  • 法律声明
  • 友情链接

新闻公告

  • 优惠活动
  • 公司公告
  • 腾讯云
< 返回新闻公共列表

爬虫系列(6)数据提取--正则表达式

发布时间:2022-06-07 23:29:49

1. 提取数据

在前面我们已经搞定了怎样获取页面的内容,不过还差一步,这么多杂乱的代码夹杂文字我们怎样把它提取出来整理呢?下面就开始介绍一个十分强大的工具,正则表达式!

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

正则表达式是用来匹配字符串非常强大的工具,在其他编程语言中同样有正则表达式的概念,Python同样不例外,利用了正则表达式,我们想要从返回的页面内容提取出我们想要的内容就易如反掌了

规则:

模式

描述

^

匹配字符串的开头

$

匹配字符串的末尾

.

匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符

[...]

用来表示一组字符,单独列出:[amk] 匹配 'a','m'或'k'

[^...]

不在[]中的字符:abc 匹配除了a,b,c之外的字符

re*

匹配0个或多个的表达式

re+

匹配1个或多个的表达式

re?

匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式

re{ n}


re{ n,}

精确匹配n个前面表达式

re{ n, m}

匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式

a

b

(re)

G匹配括号内的表达式,也表示一个组

(?imx)

正则表达式包含三种可选标志:i, m, 或 x 。只影响括号中的区域

(?-imx)

正则表达式关闭 i, m, 或 x 可选标志。只影响括号中的区域

(?: re)

类似 (...), 但是不表示一个组

(?imx: re)

在括号中使用i, m, 或 x 可选标志

(?-imx: re)

在括号中不使用i, m, 或 x 可选标志

(?#...)

注释

(?= re)

前向肯定界定符。如果所含正则表达式,以 ... 表示,在当前位置成功匹配时成功,否则失败。但一旦所含表达式已经尝试,匹配引擎根本没有提高;模式的剩余部分还要尝试界定符的右边。

(?! re)

前向否定界定符。与肯定界定符相反;当所含表达式不能在字符串当前位置匹配时成功

(?> re)

匹配的独立模式,省去回溯

\w

匹配字母数字及下划线

\W

匹配非字母数字及下划线

\s

匹配任意空白字符,等价于 [\t\n\r\f].

\S

匹配任意非空字符

\d

匹配任意数字,等价于 [0-9]

\D

匹配任意非数字

\A

匹配字符串开始

\Z

匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。c

\z

匹配字符串结束

\G

匹配最后匹配完成的位置

\b

匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'

\B

匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'

\n, \t, 等.

匹配一个换行符。匹配一个制表符。等

\1...\9

匹配第n个分组的内容

\10

匹配第n个分组的内容,如果它经匹配。否则指的是八进制字符码的表达式

[\u4e00-\u9fa5]

中文

2. 正则表达式相关注解

2.1 数量词的贪婪模式与非贪婪模式

正则表达式通常用于在文本中查找匹配的字符串Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;非贪婪的则相反,总是尝试匹配尽可能少的字符

例如:正则表达式”ab”如果用于查找”abbbc”,将找到”abbb”。而如果使用非贪婪的数量词”ab?”,将找到”a”

2.2 常用方法

  • re.match
    • re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none
    • 函数语法:re.match(pattern, string, flags=0)
  • re.search
    • re.search 扫描整个字符串并返回第一个成功的匹配。
    • 函数语法:re.search(pattern, string, flags=0)
  • re.sub
    • re.sub 替换字符串re.sub(pattern,replace,string)
  • re.findall
    • re.findall 查找全部re.findall(pattern,string,flags=0)

3. 正则表达式修饰符 - 可选标志

正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位 OR(|) 它们来指定。如 re.I | re.M 被设置成 I 和 M 标志:

修饰符

描述

re.I

使匹配对大小写不敏感

re.L

做本地化识别(locale-aware)匹配

re.M


re.S

使 . 匹配包括换行在内的所有字符

re.U

根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B

re.X

该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解



本文链接:https://www.yzban.cn/news/content/122.html 复制本文链接 链接已复制
/template/Home/ShiwaiA1/PC/Static
注册即可领取40+款免费体验产品,为您提供优质的上云实践机会。企业用户最高可获得180天云服务器体验时长
开始体验
  • 5天内无理由退款
  • 免费备案
  • 1V1大客户服务
  • 7x24小时服务
  • 壹站邦

    • 官方公告
    • 荣誉资质
    • 服务协议
    • 法律声明
    • 关于我们
  • 行业解决方案

    • 游戏云解决方案
    • 金融解决方案
    • 电商解决方案
    • 网站解决方案
    • 移动云解决方案
  • 帮助与支持

    • 账户问题
    • 备案指南
    • 常见问题
    • 网站备案
    • 工单服务
  • 合作与生态

    • 合作伙伴
    • 壹站邦分销系统
    • 业界动态
    • 联系我们
    • 服务市场
  • 管理控制中心

    • 控制中心
    • 续费管理
    • 订单管理
    • 财务管理
    • 账户管理
服务热线:Array联系我们
简体中文
  • 简体中文
  • English
  • 繁体中文

深圳市壹站邦科技有限公司
旗下品牌:壹站邦
服务热线

18682484654 18129837002

热门产品

  • 域名注册
  • 云服务器
  • 云虚拟主机
  • 负载均衡
  • 网络加速
  • 云数据库
  • 对象存储
  • SSL证书
  • 裸金属

帮助中心

  • 文档中心
  • 账户问题
  • 备案指南
  • 控制台使用
  • 常见问题
  • 法律法规
  • WHOIS查询
  • 工单服务
  • 服务协议
Copyright © 2018-2021 yzban.cn. All Rights Reserved. 壹站邦科技 版权所有
粤公网安备 44030502007900号 工信部备案:粤ICP备2021101436号 统一社会信用代码:91440300MA5EDUAQ8N 授权代理商:华为技术有限公司
简体中文
  • 简体中文
  • English
  • 繁体中文
  • QQ咨询
    联系客服获取更多优惠
    • 921184386
    • 412442617
  • 微信咨询
    腾讯云优惠,阿里云折扣,腾讯云代理商,阿里云代理商,华为云代理商,腾讯云服务器,腾讯云代金券,阿里云代金券,腾讯云返点,阿里云返点,华为云返点,阿里云续费,腾讯云阿里云,腾讯服务器,ddos高防大客户报价,技术方案
  • 电话咨询
    请选择客服进行咨询
    • 18129837002
    • 18682484654
  • 备案
  • 工单
  • TOP