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实现输入电影名字自动生成豆瓣评论词云图(带GUI界面)小程序

    Python实现输入电影名字自动生成豆瓣评论词云图 带GUI界面 小程序 一 项目背景 电影逐渐成为人们生活的不可或缺的一部分 而了解一部电影的可以通过电影评分与大众推荐度 但以上的方式都太过于片面 了解一部电影的方法是通过已经观看完电影的
  • Anaconda简介

    anaconda是python发行的包的管理工具 其中自带python的版本 还带很多python的包 安装它比安装python好 可以省掉再安装python包的时间 推荐使用Anaconda 用Anaconda安装python的包是非常便
  • Python爬虫10-Selenium模拟登录

    目录 10 1Selenium和PhantomJS和headless chrome 10 1 1Selenium的概念和安装 10 1 2浏览器的选择和安装 10 2Selenium和PhantomJS与Chrome的配合使用 10 2 1
  • Python 文件操作(IO)

    文章目录 前言 一 打印到屏幕 print 二 读取键盘输入 1 raw input 2 input 三 读写文件 读文件 写文件 前言 和其它编程语言一样 Python 也具有操作文件 I O 的能力 比如打开文件 读取和追加数据 插入和
  • 学完Python,怎么变现?小哥哥10000元外快了解一下

    自学 Python 之后如果不去公司上班 自己一个人可以通过此技能挣什么钱 逆天的Python 只要你掌握了相关技术 就可以靠它赚钱 具体怎么赚 我们来看看一位小哥哥的回答 以我差不多四年的 Python 使用经验来看 大概可以按以下这些路
  • 【python爬虫】8.温故而知新

    文章目录 前言 回顾前路 代码实现 体验代码 功能拆解 获取数据 解析提取数据 存储数据 程序实现与总结 前言 Hello又见面了 上一关我们学习了爬虫数据的存储 并成功将QQ音乐周杰伦歌曲信息的数据存储进了csv文件和excel文件 学到
  • 某乎搜索接口x-zse-96参数逆向学习分析,网站:aHR0cHM6Ly93d3cuemhpaHUuY29tLw==

    目标参数 x zse 96 参数分析 全局搜索x zse 96 只有两个地方出行 打上断点后刷新网页 从图中断点地方可以看到 搞清楚u f s 的由来就解决了x zse 96 可以看到s参数是由以下几部分组成 1 101 3 2 0 固定版
  • Python的学习过程中not enough values to unpack (expected 2, got 1)解决方案

    这是一篇在自学过程中debug的笔记 愿我们一同进步 问题描述 跟着小甲鱼一起学习Python 在学习到 文件 的时候有一个代码任务 内容是根据两个人物之间的三段对话对话进行分割提取操作 运行时报错 主要报错为not enough valu
  • Python爬虫实战,requests模块,Python实现IMDB电影top数据可视化

    前言 利用Python爬取IMDB电影 废话不多说 让我们愉快地开始吧 开发工具 Python版本 3 6 4 相关模块 requests模块 random模块 bs4模块 以及一些Python自带的模块 环境搭建 安装Python并添加到
  • python3 隐藏print的标准输出

    在使用python调用函数时 想将函数中的print输出禁止掉又不想改函数的代码 可以定义如下HiddenPrints类解决 class HiddenPrints def enter self self original stdout sy
  • python爬虫——爬取快读小说app

    1 爬取结果 csv文件 出现了有两个表头 不明所以 无关大雅 2 使用fiddler4进行抓包 通过观察url 我们不难发现其中的规律 要实现进行分类抓取 需要更改url第一个数字 如下 https sc canrike com Cate
  • 使用Postman抓取Chrome请求快速生成Request请求代码

    最近在练习爬虫的时候 爬取网站时常常需要模拟浏览器去访问 但是使用request发送请求时 需要填写headers也就是头部信息 但我又是一个懒得复制的人 尝试了很多软件 最后找到了一款特别适合我自己的 方便快捷 话不多说 放链接 下载地址
  • python自动化课程笔记(六)函数

    函数 类 模块 包 项目 包与文件夹的区别在于 包中有很多模块 和init文件 函数 提高编码的效率及代码的重用 把独立功能的代码块组成一个小模块 def printInfo 定义一个函数 print 10 print 人生苦短 我用pyt
  • GIS栅格平均值计算

    GIS中批量计算tif栅格文件平均值 coding UTF 8 import arcpy import os inws r C Users DELL Desktop 新建文件夹 arcpy env workspace inws raster
  • Python学习-----起步4(列表元素的添加,删除,修改,查询,获取长度)

    目录 前言 列表元素的添加 或者叫写入 1 append 函数 2 extend 函数 3 insert 函数 列表元素的删除 1 remove 函数 2 pop 函数 3 clear 函数 4 del 方法 这个不是函数哦 列表元素的修改
  • python3爬虫伪装代理IP

    在爬取类似 起点 色魔张大妈 这样的网站时 会被网站看出是爬虫机制 这时需要伪装成浏览器以及使用IP代理的方式来爬去正常内容 实例 import re import requests import urllib request from l
  • python自动化笔记(九)文件操作

    文件的打开 file open test txt w encoding utf 8 参数 文件名 访问模式 write 默认为read file write hello python 删除原有内容 并写入 ret file read 读取文
  • 将本地的代码上传到github完整版本

    1 注册github账号 2 安装git https git for windows github io 3 进入Github首页 点击New repository新建一个项目 Public Private 仓库权限 公开共享 私有或指定合
  • Python学习(3):批量修改文件名(以excel文件为例)

    coding utf 8 import os dir input 请输入文件路径 for root dirs files in os walk dir for i in range len files filename files i ne

随机推荐

  • 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