为什么re.match匹配不到?re.match匹配规则怎样?(捕一下seo)

re.match(pattern, string[, flags])

pattern为匹配规则,即输入正则表达式。

string为,待匹配的文本或字符串。

网上的定义【 从要匹配的字符串的头部开始,当匹配到string的尾部还没有匹配结束时,返回None; 
当匹配过程中出现了无法匹配的字母,返回None。】

但我觉得要强调关键一句【仅从要匹配的字符串头部开始匹配!】

看看例子,你就明白了!!!想用的话,一定要看!

出现<_src.SRE_Match object at .....>表示匹配成功。

出现None表示,匹配失败或未匹配到。

总结:re.match只从待匹配的字符串或文本的开头开始匹配,即如果匹配的字符串不在开头,而是在中间或结尾,则无法匹配!

———————————————————分割线——————————————————

顺便对比下re.match、re.search、re.findall的区别

match()函数只在string的开始位置匹配(例子如上图)。

search()会扫描整个string查找匹配,会扫描整个字符串并返回第一个成功的匹配。

 re.findall()将返回一个所匹配的字符串的字符串列表

———————————————————分割线——————————————————

《用python写网络爬虫》中1.4.4链接爬虫中,下图为有异议代码

这里的输出经测试,根本啥也没有,如下图

查了很久,应该是因为re.match一直匹配不到数据引起的,毕竟他只匹配开头。

将re.match改为re.search,再测试,可正常下载

分析:可能是由于书编写时,http://example.webscraping.com/页面所带的链接都是:/index/1、/index/2……且输入匹配表达式为  【   /(index/view)   】,使用的是re.match匹配,如果匹配上述的url则没问题,而现在该网站页面所带的链接为:/places/default/index/1、/places/default/index/2……所以,上文讲到的re.match的特点,从开头开始匹配,则这时候re.match就会一直匹配不上!我将它换位re.search就可以解决这个问题了。

如有错误,麻烦及时指正,谢谢!

python爬虫笔记之re.match匹配,与search、findall区别的更多相关文章

  1. [Python爬虫笔记][随意找个博客入门(一)]

    [Python爬虫笔记][随意找个博客入门(一)] 标签(空格分隔): Python 爬虫 2016年暑假 来源博客:挣脱不足与蒙昧 1.简单的爬取特定url的html代码 import urllib ...

  2. Python爬虫笔记一(来自MOOC) Requests库入门

    Python爬虫笔记一(来自MOOC) 提示:本文是我在中国大学MOOC里面自学以及敲的一部分代码,纯一个记录文,如果刚好有人也是看的这个课,方便搬运在自己电脑上运行. 课程为:北京理工大学-嵩天-P ...

  3. Python学习笔记——基础篇【第五周】——正在表达式(re.match与re.search的区别)

    目录 1.正在表达式 2.正则表达式常用5种操作 3.正则表达式实例 4.re.match与re.search的区别 5.json 和 pickle 1.正则表达式   语法: import re # ...

  4. python爬虫笔记Day01

    python爬虫笔记第一天 Requests库的安装 先在cmd中pip install requests 再打开Python IDM写入import requests 完成requests在.py文 ...

  5. 正则表达式中 re.match与re.search的区别

    标签: 本文和大家分享的主要是python正则表达式中re.match函数与re.search方法的相关用法及异同点,希望通过本文的分享,能对大家有所帮助. re.match函数 re.match 尝 ...

  6. re.match与re.search的区别

    re.match与re.search的区别 re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None:而re.search匹配整个字符串,直到找到一个匹配. 实 ...

  7. PYTHON 爬虫笔记四:正则表达式基础用法

    知识点一:正则表达式详解及其基本使用方法 什么是正则表达式 正则表达式对子符串操作的一种逻辑公式,就是事先定义好的一些特定字符.及这些特定字符的组合,组成一个‘规则字符串’,这个‘规则字符串’用来表达 ...

  8. Python爬虫笔记安装篇

    目录 爬虫三步 请求库 Requests:阻塞式请求库 Requests是什么 Requests安装 selenium:浏览器自动化测试 selenium安装 PhantomJS:隐藏浏览器窗口 Ph ...

  9. Python爬虫笔记技术篇

    目录 前言 requests出现中文乱码 使用代理 BeautifulSoup的使用 Selenium的使用 基础使用 Selenium获取网页动态数据赋值给BeautifulSoup Seleniu ...

随机推荐

  1. Delphi6/7 中XML 文档的应用

    XML文档是新一代的Web数据格式.它可以用树的形式储存一切数据.下面介绍一下TXMLDocument控件的一些用法:已定义:XMLDoc: TXMLDocument;EncoderMIME: TId ...

  2. C# winform 主界面打开并关闭登录界面

    在winform 界面编程中,我们有时候要在主界面打开之前先显示登录界面,当登录界面用户信息校验正确后才打开主界面,而这时登陆界面也完成使命该功成身退了. 目前有两种方法可实现: 方法1. 隐藏登录界 ...

  3. 用Delphi开发视频聊天软件

    摘要:目前网上视频聊天软件.视频会议软件.可视IP电话软件随处可见,你是否想自己做一个玩玩?其实这类软件无非是视频加上网络而建成的.如果熟悉视频捕捉和网络传输技术,根本就难不倒你.微软为软件开发人员提 ...

  4. TCanvas 类属性及方法

    delphi TCanvas类 类关系   TObject-> TPersistent   对那些作图对象,可使用TCanvas对象作为画布.标准的window控件,例如编辑控件和列表框控件,当 ...

  5. VS2008下QT整合OGRE

    环境配置如下:VS2008 QT版本:4.8.1 OGRE版本: 1.7.4 请先配置好QT  for vs2008  : 下载QT VS2008的包,然后下个QT VS的插件 版本必须是VS2008 ...

  6. Delphi中文件流的使用方法

    在Delphi中,所有流对象的基类为TStream类, 其中定义了所有流的共同属性和方法.TStream类中定义的属性介绍如下: 1.Size: 此属性以字节返回流中数据大小. 2.Position: ...

  7. 如何保证MQ消息必达

    此文章属于笔记,原属58沈剑 一.MQ消息必达,架构上的两个核心设计点: 消息落地 消息超时.重传.确认 四大部件:发送端 接收端 服务端 固化存储组成 二.上半场消息必达以及消息重复问题 上半场的流 ...

  8. hgoi#20190515

    T1-Pie or die Volodya和Vlad在玩下面的这个游戏.这里有k个派,分布在n×m的板子上.每一回合Volodya移动一个派到这个派边界的格子,如果这个派在板子的边界,Volodya就 ...

  9. Rails.cache相关知识

    可能里面的一些知识已经不被大家使用了,但是作为学习,我想和大家分享一下个人关于Rails.cache的浅显的认识,望大家指教. 1.Rails.cache是什么 它是Rails中的缓存,拥有所有缓存的 ...

  10. PowerDesigner16.5 有用地址

    http://blog.csdn.net/keenweiwei/article/details/32720427