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

2023-11-12

 

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 爬虫库以及库函数总结&&踩坑 的相关文章

  • Python os.path() 模块

    os path 模块主要用于获取文件的属性 以下是os path 模块的几种常用方法 方法 说明 os path abspath path 返回绝对路径 os path basename path 返回路径中最后一个元素 以 结尾时返回空字
  • python自动化课程笔记(十二)闭包、装饰器

    闭包 闭包就是能够读取其他函数内部变量的函数 例如在javascript中 只有函数内部的子函数才能读取局部变量 所以闭包可以理解成 定义在一个函数内部的函数 在本质上 闭包是将函数内部和函数外部连接起来的桥梁 闭包 def test nu
  • 学完Python,怎么变现?小哥哥10000元外快了解一下

    自学 Python 之后如果不去公司上班 自己一个人可以通过此技能挣什么钱 逆天的Python 只要你掌握了相关技术 就可以靠它赚钱 具体怎么赚 我们来看看一位小哥哥的回答 以我差不多四年的 Python 使用经验来看 大概可以按以下这些路
  • Python模拟登陆万能法-微博

    Python模拟登陆让不少人伤透脑筋 今天奉上一种万能登陆方法 你无须精通HTML 甚至也无须精通Python 但却能让你成功的进行模拟登陆 本文讲的是登陆所有网站的一种方法 并不局限于微博与知乎 仅用其作为例子来讲解 用到的库有 sele
  • UI自动化测试通过飞书发送告警信息

    1 发送纯文本消息 1 1代码如下 usr bin env python coding utf 8 import json import requests url https open feishu cn open apis bot v2
  • python基础----03-----if语句、while、for循环、range语句、continue和break

    一 布尔类型和比较运算符 1 1 布尔类型和比较运算符 定义变量存储布尔类型数据 变量名称 布尔类型字面量 布尔类型不仅可以自行定义同时也可以通过计算的来 也就是使用比较运算符进行比较运算得到布尔类型的结果 在C C 中 比较运算符称之为关
  • Mysql数据库的环境搭建【详细】

    作者简介 大学机械本科 野生程序猿 学过C语言 玩过前端 还鼓捣过嵌入式 设计也会一点点 不过如今痴迷于网络爬虫 因此现深耕Python 数据库 seienium JS逆向 安卓逆向等等 目前为全职爬虫工程师 学习的过程喜欢记录 目前已经写
  • [Python

    目录 一 问题简介 二 解决方案 1 全局搜索sign 2 文件局部搜索 3 寻找目标函数 4 调用函数 5 补全JS代码 6 token的获取 三 Python代码 1 UI类 2 爬虫逻辑类 四 完整代码 JS代码 Python代码 一
  • [Python爬虫] Selenium获取百度百科旅游景点的InfoBox消息盒

    前面我讲述过如何通过BeautifulSoup获取维基百科的消息盒 同样可以通过Spider获取网站内容 最近学习了Selenium Phantomjs后 准备利用它们获取百度百科的旅游景点消息盒 InfoBox 这也是毕业设计实体对齐和属
  • 【项目:坦克大战】

    v1 25 新增功能 1 音效的处理 import pygame time random display pygame display COLOR BLACK pygame Color 0 0 0 COLOR RED pygame Colo
  • pywinauto和PyUserInput实现windows程序自动化

    一 pywinauto 官方文档 https pywinauto readthedocs io en latest code code html 首先需要下个spy lite 便于查看程序窗口属性 主要模块 pywinauto applic
  • 安装python包的方式,控制台方式以numpy安装为例

    说明 方式1 直接打开cmd 需要配置python环境 控制台输入 python m pip install package name 版本号 方式2 去网上将所需的包下载下来 链接 官方下载链接 一般是 whl格式 然后将其放在自己的路径
  • 淘特app x-sign参数签名分析

    之前看见大佬说淘特app的风控比tb的要小很多 于是学习了下t特的签名分析 一 抓包分析 通过Charles抓包分析 分析请求参数 headers x sgext JAWowlF3DRjHdjoiU 2Flc38K43prxmuGa9Jv3
  • Python03-pytest框架

    Python03 pytest测试框架 pytest简介 支持参数化可以细分控制测试用例 支持简单的单元测试和复杂的功能测试 还支持selenium appium等自动化测试 接口自动化测试 支持第三方插件 可以自定义扩展 pytestht
  • Python-with open() as f的用法

    常见的读写操作 with open r filename txt as f data user pd read csv f 文件的读操作 with open data txt w as f f write hello world 文件的写操
  • Python错误处理的艺术:使用retrying库实现高效重试机制

    简介 学习如何使用 Python 的 retrying 库来处理在程序运行过程中可能出现的各种异常和错误 retrying 是一种简单 易于使用的重试机制 帮助我们处理由网络问题或其他暂时性错误引起的失败 在很多情况下 简单的重试可能就是解
  • Leetcode刷题日志5.0

    目录 前言 1 两数相加 2 无重复字符的最长子串 3 整数反转 4 删除链表的倒数第 N 个结点 前言 今天我又来继续分享最近做的题了 现在开始进入我们快乐的刷题时间吧 编程语言Python3 0 难度 中等 1 两数相加 给你两个 非空
  • python自动化笔记(九)文件操作

    文件的打开 file open test txt w encoding utf 8 参数 文件名 访问模式 write 默认为read file write hello python 删除原有内容 并写入 ret file read 读取文
  • 几个Python小案例,爱上Python编程!

    Python是一种面向对象的解释型编程语言 源代码与解释器CPython遵守GPL协议 Python语法简洁清晰 语法简洁清晰 那么我们用少量的Python代码能做哪些有趣的东西 一 画爱心表白 1 图形都是由一系列的点 X Y 构成的曲线
  • 为什么要学习Python?

    前言 Python 是当今非常流行的编程语言 在互联网上经常可以看到他的身影 它应用非常广泛 例如编程 Web 开发 机器学习和 数据科学Q 等 TIOBE 官网近日公布了 2023 年 8 月的编程语言排行榜 Python 依然排行第一

随机推荐

  • UnityVR--小程序4--第一人称控制器

    在没有VR设备的情况下 可以在Windows系统中运行我们之前做好的小游戏 只需要将VR场景中的OVRPlayerController更换成我们自己制作的第一人称控制器就行 之后可以用键盘和鼠标控制人物的移动 跳跃 转向 就和普通的3D游戏
  • 实用科研网站(自用)

    网站 网址 Papers With Code https paperswithcode com AMiner https www aminer cn Connected Papers https www connectedpapers co
  • Python3 生成器(generator)概念浅析

    引子 某次面试问候选人 Python 中生成器是什么 答曰 有 yield 关键字的函数 而在我印象中此种函数返回的值是生成器 而函数本身不是 如下 In 1 def get nums n for i in range n yield i
  • k互近邻算法 rerank

    建议读者手中有re ranking的代码 或者看过某个行人充实别的代码 一 re ranking大致流程 re ranking是一个图像检索问题 给定一个probe 要从图片集gallery中找出与它相似的图片 如 既然是检索问题 那么ra
  • llama2本地CPU推理运行

    介绍 本教程使用C语言部署运行llama2模型 可以高效地在CPU上进行推理 主要包含的内容有 1 运行环境配置 包括C python 2 原始llama2模型转换为二进制格式 3 使用C语言推理llama2 环境安装与配置 项目下载 gi
  • SQL语句,数据库增加、删除、修改、查询

    原创博客 转载请注明 转自 https blog csdn net hongdunyang article details 86181589 1 查询全部 select from table1 2 查询某几列 select colume1
  • 2021重庆江北中学高考成绩查询,2020年重庆部分中学高考成绩单,看看有你的母校吗?...

    文科重本线共有11117人 600分以上1835人 文科655分以上 全市共计57人 理科重本线共有42071人 600分以上7924人 理科700分以上的 全市共计54人 全国二卷理科状元 重庆八中谢欣颖同学726分 语文136数学149
  • Studio 3T for MongoDB的介绍及语法简单介绍

    用法介绍 Studio 3T是一款用于MongoDB数据库管理和开发的图形化工具 它提供了许多功能来简化MongoDB的操作和开发过程 以下是一些常见的Studio 3T用法 连接到MongoDB服务器 打开Studio 3T并创建一个新连
  • nvm使用的注意事项和常用命令。

    nvm官网下载地址 nvm文档手册 nvm是一个nodejs版本管理工具 nvm中文网 uihtm com 参考网址 14 封私信 80 条消息 如何通过 nvm 安装多版本 nodejs npm 安装失败了怎么办 知乎 zhihu com
  • Java学习笔记之“接口与继承”

    本文为在How2j的学习总结 只代表个人见解 如有不妥 望指出以便更正 接口 在设计LOL的时候 进攻类英雄有两种 一种是进行物理系攻击 一种是进行魔法系攻击 这时候 就可以使用接口来实现这个效果 设计两种接口AD和AP package L
  • FPGA数字IC的Verilog刷题解析基础版03——奇偶校验(奇偶检测)

    1 题目 用verilog实现对输入的32位数据进行奇偶校验 根据sel输出校验结果 sel 1输出奇校验 sel 0输出偶校验 timescale 1ns 1nsmodule odd sel input 31 0 bus input se
  • C语言:memcpy、memmove等函数的了解,使用以及模拟实现

    C语言 memcpy memmove等函数的了解 使用以及实现 1 memcpy函数的介绍 使用 以及实现 2 memmove函数的介绍 使用 以及实现 1 memcpy函数的介绍 使用 以及实现 1 作用介绍 函数原型 void memc
  • [HDLBits] Count15

    Build a 4 bit binary counter that counts from 0 through 15 inclusive with a period of 16 The reset input is synchronous
  • 使用IntelliJ IDEA查看类图

    使用IntelliJ IDEA查看类图 一 查看图形形式继承链 查看方式有如下两种 show Diagrams 新打开一个标签页 show Diagrams Popup 打开一个悬浮窗口 选择想查看已打开的类或者Project Tree中的
  • 趣味python编程之经典俄罗斯方块

    国庆期间闲不住 用python把经典俄罗斯方块实现了一遍 找到了些儿时的乐趣 因此突发奇想 正统编程之余也给自己找点儿乐趣 换个角度写程序 原计划是写篇完整的博文对程序算法和函数模块做个说明 但是在整理程序的时候发现自己给程序加的注释已经相
  • JUC基础【万字篇】

    JUC 1 什么是JUC JUC 指的是java util三个并发编程工具包 java util concurrent java util concurrent atomic java util concurrent locks 实现多线程
  • SpringBoot 三种拦截http请求方式Filter,interceptor和aop

    SpringBoot 三种拦截http请求方式Filter interceptor和aop 这三种拦截方式的拦截顺序是 filter gt Interceptor gt ControllerAdvice gt Aspect gt Contr
  • office word复制图片出错

    前言 今天在使用word文档时 发现在复制图片时 总是复制的不完整 Word中插入图片只显示一行的 图片缺失的部分感觉和文字交织在一起 估计原因是 之前图片复制在word中的标题的位置上了 解决 点击word上方的 正文 然后再复制图片 问
  • 【C++ primer】第一章 快速入门 读书笔记

    1 1 编写简单的c 程序 返回 0值表明程序程序成功执行完毕 非零返回值表明有错误出现 返回值类型必须和函数的返回类型相同 或者可以转换成函数的返回类型 1 1 1 编译与执行程序 1 2 初窥输入 输出 术语 流 试图说明字符是随着时间
  • Python 爬虫库以及库函数总结&&踩坑

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