Python 爬虫库以及库函数总结&&踩坑

2023-05-16

 

1. Re库的基本使用

  • Re库介绍:

    • Re库是Python的标准库,主要用于字符串匹配。

    • 调用方式:import re

  • 正则表达式的表示类型:

    • raw string类型(原生字符串类型):

      • re库采用raw string类型表示正则表达式,表示为:r'text'

      • 例如:r'[1-9]\d{5}'

      • raw string是指不包含转义符的字符串

    • string类型,更繁琐。

      • 例如:'[1-9]\\d{5}';'\\d{3}-\\d{8}|\\d{4}-\\d{7}'

    当正则表达式包含转义符时,建议使用raw string类型来表示正则表达式。

  • Re库主要功能函数:

函数

说明

re.search()

在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象

re.match()

从一个字符串的开始位置起匹配正则表达式,返回match对象

re.findall()

搜索字符串,以列表类型返回全部能匹配的字符串

re.split()

将一个字符串按照正则表达式匹配结果进行分割,返回列表类型

re.finditer()

搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素是match对象

re.sub()

在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串

re.compile()返回的是一个匹配对象,它单独使用就没有任何意义,需要和findall(), search(), match()搭配使用。 
  • re.search(pattern,string,flags=0)

    • 在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象。

      • pattern:正则表达式的字符串或原生字符串表示

      • string:待匹配字符串

      • flags:正则表达式使用时的控制标记

        • re.I(re.IGNORECASE):忽略正则表达式的大小写,[A-Z]能够匹配小写字符

        • re.M(re.MULTILINE):正则表达式中的^操作符能够将给定字符串的每行当作匹配开始

        • re.S(re.DOTALL):正则表达式中的.操作符能够匹配所有字符,默认匹配除换行外的所有字符****!!!!****

                          

  • re.match(pattern, string, flags = 0)

    • 从一个字符串的开始位置起匹配正则表达式,返回match对象。

      • pattern:正则表达式的字符串或原生字符串表示

      • string:待匹配字符串

      • flags:正则表达式使用时的控制标记

                            

  • re.findall(pattern, string, flags = 0)

    • 搜索字符串,以列表类型返回全部能匹配的子串。

      • pattern:正则表达式的字符串或原生字符串表示

      • string:待匹配字符串

      • flags:正则表达式使用时的控制标记

                            

  • re.split(pattern, string, maxsplit = 0, flags = 0)

    • 搜索字符串,以列表类型返回全部能匹配的子串。

      • pattern:正则表达式的字符串或原生字符串表示

      • string:待匹配字符串

      • maxsplit:最大分割数,剩余部分作为最后一个元素输出

      • flags:正则表达式使用时的控制标记

                            

  • re.finditer(pattern, string, flags = 0)

    • 搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素是match对象。

      • pattern:正则表达式的字符串或原生字符串表示

      • string:待匹配字符串

      • flags:正则表达式使用时的控制标记

                               

  • re.compile()

    compile()的定义:

    compile(pattern, flags=0) 
    Compile a regular expression pattern, returning a pattern object.

    从compile()函数的定义中,可以看出返回的是一个匹配对象,它单独使用就没有任何意义,需要和findall(), search(), match()搭配使用。 
    compile()与findall()一起使用,返回一个列表。

    import re
    
    def main():
        content = 'Hello, I am Jerry, from Chongqing, a montain city, nice to meet you……'
        regex = re.compile('\w*o\w*')
        x = regex.findall(content)
        print(x)
    
    
    if __name__ == '__main__':
        main()
    # ['Hello', 'from', 'Chongqing', 'montain', 'to', 'you']


    compile()与match()一起使用,可返回一个class、str、tuple。但是一定需要注意match(),从位置0开始匹配,匹配不到会返回None,返回None的时候就没有span/group属性了,并且与group使用,返回一个单词‘Hello’后匹配就会结束。

    import re
    
    def main():
        content = 'Hello, I am Jerry, from Chongqing, a montain city, nice to meet you……'
        regex = re.compile('\w*o\w*')
        y = regex.match(content)
        print(y)
        print(type(y))
        print(y.group())
        print(y.span())
    
    
    if __name__ == '__main__':
        main()
    # <_sre.SRE_Match object; span=(0, 5), match='Hello'>
    # <class '_sre.SRE_Match'>
    # Hello
    # (0, 5)

    compile()与search()搭配使用, 返回的类型与match()差不多, 但是不同的是search(), 可以不从位置0开始匹配。但是匹配一个单词之后,匹配和match()一样,匹配就会结束。

     

  • re.sub(pattern, repl, string, count = 0, flags = 0)

    • 在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串。

      • pattern:正则表达式的字符串或原生字符串表示

      • repl:替换匹配字符串的字符串

      • string:待匹配字符串

      • count:匹配的最大替换次数

      • flags:正则表达式使用时的控制标记

                            

 

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

Python 爬虫库以及库函数总结&&踩坑 的相关文章

  • VS2022中一步实现C++调用python程序文件

    首先直接上干货 xff0c 我是借鉴了C 43 43 调用python文件 xff08 包含第三方库 xff09 知乎 zhihu com 与 13条消息 2 VS2017调用Python函数 vs2017 python3 11 糊面包包专
  • 邓凡平WIFI学习笔记5: P2P

    P2P Device xff1a 它是P2P架构中角色的实体 xff0c 可把它当做一个Wi Fi设备 P2P Group Owner xff1a Group Owner xff08 GO xff09 是一种角色 xff0c 其作用类似于I
  • 关于function declared implicitly的正确解法以及extern的用法

    一直以来以为function declared implicitly这个问题都是很容易的解决的 xff0c 所以没有在意 xff0c 没想到昨天查了下 xff0c 网上竟然有好多种说法是不合适的 xff0c 所以解答下 首先这句话是函数没有
  • maven-replacer-plugin 静态资源版本号解决方案(css/js等)

    本文介绍如何使用 maven 的 com google code maven replacer plugin 插件来自动添加版本号 xff0c 防止浏览器缓存 1 解决方案 解决问题 xff1a 防止浏览器缓存 xff0c 修改静态文件 x
  • CentOS7下配置tomcat开机自启

    1 创建tomcat自动启动命令脚本 vi etc init d tomcat 2 写以下代码 注意修改JAVA HOME和CATALINA HOME CATALINA BASE字段 匹配自己的安装路径 span class hljs sh
  • 2020年最新“MySQL数据库高频面试题解析+Mysql问题分析思维导图”

    前言 xff1a 本文涵盖100道MySQL数据库高频面试题解析 43 Mysql问题分析思维导图 xff1b 没有那么多废话 xff0c 文章有点干 xff0c 除了干货就是干货 满是诚意 xff0c 建议收藏 MySQL 100道高频面
  • CentOS7 安装Nextcloud17

    CentOS7 安装Nextcloud17 nextcloud是继承owncloud后的开源项目 xff0c 并且跨各大平台 xff0c 提供安卓 Mac window IOS等平台应用 安装参考 xff1a docs nextcloud
  • Invalid <param> tag: Cannot load command parameter [robot_description]:

    在roslaunch运行的时候出现的问题解决 xff1a Traceback most recent call last File opt ros kinetic lib xacro xacro line 33 in xacro main
  • 树莓派3B+ 软件源更改

    树莓派3B 43 软件源更改 由于树莓派软件官方源在国外 xff0c 所以连接不稳定 xff0c 且速度慢 xff0c 所以安装初次进入系统后 xff0c 一定要修改一下软件源 国内软件源有很多 xff0c 在这里 xff0c 我推荐自己常
  • 树莓派3B+ 开启超频

    树莓派3B 43 开启超频 正如我们所知 xff0c 树莓派CPU默认频率是1200MHz xff0c 在一般状态下处于600MHz xff0c 对于这个CPU性能如何 xff0c 我就不多说了 xff0c 由于树莓派到现在都还没有官方64
  • 树莓派3B+ 人脸识别(OpenCV)

    树莓派3B 43 人脸识别 OpenCV 相信大家都看了前面的OpenCV安装和人脸检测教程 xff0c 已经跃跃欲试 xff0c 想要进行人脸识别了 xff0c 现在我们正式进入重头戏 人脸识别 的教程 注意 xff1a 该教程面向pyt
  • Window 设置远程桌面(兼容各平台)

    Window 设置远程桌面 xff08 兼容各平台 xff09 对于window远程桌面 xff0c 相信大家都不陌生 xff0c 它是一个非常好用的且稳定的工具 xff0c 远比第三方提供工具好用 但是 xff0c 有很多朋友在开启远程桌
  • 树莓派3B+ 远程下载服务器(Aria2)

    树莓派3B 43 远程下载服务器 xff08 Aria2 xff09 近来发现之前的部署的迅雷远程下载Xware在下载BT文件时会自动掉线 xff0c 鉴于迅雷不在对该固件的维护 xff0c 所以只能另辟蹊径 xff0c 现在比较主流的下载
  • 物理机下安装 VMware ESXi 6.7

    物理机下安装 VMware ESXi 6 7 ESXI虚拟平台是VMware出品的一个强大平台 xff0c 它可以直接安装在物理机上 xff0c 从而充分利用物理奖性能 xff0c 虚拟多个系统出来 ESXI是一个带WEB管理后台的软件 x
  • VMware ESXi 6.7 安装LEDE

    VMware ESXi 6 7 安装LEDE LEDE是Linux嵌入式开发环境项目 xff0c 在众多路由器固件中 xff0c LEDE可玩性最高的 xff0c 但要真的玩得转 xff0c 还是要一定的耐心 很多小伙伴一般都喜欢 爱快做主
  • vncserver 看不到桌面解决办法

    转载 xff1a http www th7 cn system lin 201308 43197 shtml ubuntu13 04安装vncserver后只显示桌面 不显示菜单栏解决 0 背景介绍 xff1a 一般的server操作系统是
  • Mininet教程(七)Mininet Walkthrough

    文章目录 Mininet教程 xff08 七 xff09 Mininet Walkthrough日常使用指令显示mininet开启选项开启Wireshark主机与路由器之间交互测试主机之间连通性运行一个简单的web服务器和客户端清理缓存 高
  • html的基本知识

    1 常用HTML标签 其他 br标签 xff1a 强制换行 lt br gt lt br gt 应用场景 用于强行换行 gt 不参与分类 xff0c 不能设置其他样式 1 xff09 行级标记 文本格式化标签 span标签 无语义标签 xf
  • 用VC++ 6.0 写贪吃蛇界面

    贪吃蛇界面 第一次写博客 xff0c 有点小紧张 xff0c 也有点激动 不多说了emmmm xff0c 自己跟着网上的视频 xff0c 用C语言做了一个贪吃蛇程序 xff0c 为了学年设计 欢迎界面的部分编译 emmmm xff0c 因为
  • 一、固定定位

    元素的位置相对于浏览器窗口是固定位置 即使窗口是滚动的它也不会移动 xff1a 特性 特性 xff1a 1 元素脱离正常文档流 xff0c 不占位 也脱离文本流 xff0c 全脱 2 始终相对于浏览器窗口四个角为原点进行固定定位的 3 不会

随机推荐

  • 定位元素的层级顺序

    层级 语法 z index n 标签添加定位之后 xff0c 可以覆盖在页面的其他标签上 后面加载的定位元素默认会覆盖在先加载的定位元素上 z index属性 xff1a 设置定位元素的叠放次序 特性 xff1a 1 z index的属性值
  • CSS 透明

    透明度属性 1 rgba r g b a 颜色模式 兼容性 xff1a IE6 7 8下不兼容 xff0c IE9 43 支持 使用 xff1a background color属性 color属性 border color属性等中设置透明
  • 数据类型和流程控制语句

    1 回顾 操作标签内容 闭合标签 标签 innerHTML 标签 innerText 标签 innerHTML 61 值 标签 innerText 61 值 表单标签 标签 value 标签 value 61 值 操作标签属性 标签 属性名
  • day02 JS交互

    1 回顾 基于对象和事件驱动的解释性脚本语言 js的组成 ECMAscript js的标准和核心 DOM 文档对象模型 BOM 浏览器对象模型 js的特性 基于对象 事件驱动 解释性 跨平台 js的引入方式 行间引入 在开始标签上加js 结
  • 一. js逻辑

    1 回顾 js的数据类型 5种基本的数据类型 number 数值 string 字符串 boolean 布尔 undefined 未定义 null 空对象 一种特殊的数据类型 复合 引用 对象 object 对象 array 数组 func
  • Git版本控制工具之Windows系统安装

    1 xff1a Git安装 Windows版本Git下载 a xff1a 地址 https git scm com download win 注意 xff1a 我们上面下载的是2 19 0的windows 64位的版本 进行安装如下 a x
  • Keil5:Error: Flash Download failed - Target DLL has been cancelled

    解决方案 xff1a reset复位Download的节点设备
  • Keil报错:Undefined symbol GPIO_Init

    原因是所需要的C文件没有在工程里面 即使在stm32f10x conf h中开启了包含相关头文件 仍然会出现这样的错误
  • KEIL中SW Device没有识别芯片,jlink下载不进去的问题

    参考了以下链接之后 xff0c 未解决 避坑指南 GD32 KEIL中SW Device没有识别芯片 xff0c jlink下载不进去的问题 无风灬幡动的博客 CSDN博客 jlink识别不到芯片 https blog csdn net q
  • CAS单点登录(二)——搭建基础服务

    前一篇文章中 xff0c 我们对CAS及SSO xff08 单点登录 xff09 有了大致的了解 xff0c 今天我们开始讲解如何搭建一个简单的CAS服务认证中心 xff0c 如果你对CAS中单点登录的概念忘记了 xff0c 可以先去复习一
  • 【20220810】STM32控制各类外设芯片的过程就是配置、读、写该外设寄存器的过程

    STM32等 MCU控制各类外设芯片的过程 xff1a 就是配置 读 写该外设寄存器的过程 因此MCU开发最主要关注的是 xff1a 1 外设芯片的各个功能寄存器的用途 2 寄存器数据的逻辑含义 3 MCU与该外设芯片的通信引脚
  • 【20220816】接触新的通讯协议编程时,只需关注通讯协议初始化和数据接收缓存和发送缓存

    接触新的通讯协议编程时 xff0c 只需关注通讯协议初始化和数据接收缓存和发送缓存 因为通讯协议的实现通常是由硬件或软件实现 xff0c 比如以太网的PHY层芯片 43 MCU的ETH接口 xff0c PHY层芯片 43 MCU的ETH内部
  • Keil5修改与“选中文本“相同变量的背景色

  • C语言的运算符优先级表格

    C语言的运算符包括单目运算符 双目运算符 三目运算符 xff0c 优先级如下 xff1a 第1优先级 xff1a 各种括号 xff0c 如 等 成员运算符 xff1b 第2优先级 xff1a 所有单目运算符 xff0c 如 43 43 等
  • 关于单片机运行时程序卡在B.处的解决方法

    程序运行时 xff0c 程序跳转到startup n32g45x s文件中的B 处卡死 解决方法 xff1a 程序卡死在B 处说明有中断没有处理 xff0c 导致程序进入中断后无法跳出
  • node执行npm -install -g npm版本提示升级成功但执行npm -v还是原来的版本解决方法

    C Users 用户名 AppData Roaming npm node modules npm 的npm复制到node js安装目录下的node modules npm给替换掉 前提是执行npm install g npm成功 执行成功会
  • JAVA工具篇--3 maven项目转gradle项目

    前言 xff1a 将已有的Maven 项目转换为Gradle 项目 xff1b 1 项目转换 xff1a 1 1 win 43 r 打开cmd命令窗口 然后进入到maven项目根目录后 xff0c 输入命令 gradle init span
  • 解决高度塌陷的几种方法

    引入 进行页面布局时 xff0c 为了能够达到自适应 xff0c 通常高度是不会进行固定设置的 xff0c 而使用float进行元素的浮动后 xff0c 由于没有内容的高度 xff0c 所以会发生父元素的高度塌陷问题 xff0c 为了解决此
  • Docker镜像、容器操作

    文章目录 一 Docker镜像操作1 搜索镜像2 获取镜像3 查看镜像查看下载到本地的所有镜像查看下载的镜像文件信息查看镜像详细信息 4 为本地的镜像添加新的标签5 镜像导出导入到本地导出镜像 xff0c 将镜像保存为本地文件导入镜像 xf
  • Python 爬虫库以及库函数总结&&踩坑

    1 Re库的基本使用 Re库介绍 xff1a Re库是Python的标准库 xff0c 主要用于字符串匹配 调用方式 xff1a import re 正则表达式的表示类型 xff1a raw string类型 xff08 原生字符串类型 x