python用match()函数爬数据方法详解


Posted in Python onJuly 23, 2019

match()函数的使用。以及从文本中提取数据的方法。在学习re模块的相关函数前应了解正则表达式的特殊字符

准备一个要爬取的文本文档:

直接从某个网页拷贝一份代码,粘贴在 一个txt文件里,以供学习。

方法很简单,比如打开百度视频的热门电影网页,右键点击查看源代码,然后复制,粘贴到一个txt文件里,保存到工作目录下。

有4000多行。

python用match()函数爬数据方法详解

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

①pattern,是正则表达式。string,被检验的字符串。

②flags是可选参数,此标记是用来对patten的补充。例如:re.S,可以让正则表达式中的点匹配换行符\n。(如图片中,可以看帮助文档,查看有哪些标记)

③ match()函数由左向右检验string,若匹配到正则表达式,返回一个匹配对象,否则就返回None.

④re.match() 匹配字符串的开始位置,而不匹配每行开始。

----所以才将网页的每行放入列表,以供match函数对每行操作。

python用match()函数爬数据方法详解

比如要在文档中,提取电影的网址,和电影名。

①复制那行文本作为表达式,

②将要提取的网址和和电影名替换为(.*),这只是暂时的,可以在接下来的代码中调整。

python用match()函数爬数据方法详解

读取文本:

①用with open()语句读取;

②用readlines,一次性读完,返回一个列表,元素是文本的每一行。

with open('aa.txt','r',encoding='utf-8') as f:
  lines=f.readlines()

python用match()函数爬数据方法详解

①判断每行是否返回了匹配的对象,

②接收匹配对象,并用groups()提取表达式内括号的内容;

for line in lines:
  if re.match(pat,line):   #判断过滤掉返回None的行,
    ret=re.match(pat,line) #接收匹配对象
    print(ret.groups())

python用match()函数爬数据方法详解

发现有不符合的行,稍加修改,过滤掉不符合的行:

因为,不合的行都有空格(或其他字符)。可以给第二子组的点 . 换成非[^ ];非空格的任意字符,意思就是不要有空格的。

python用match()函数爬数据方法详解

用f-string格式化对输出的文本稍加修饰,使用group(1),group(2);

python用match()函数爬数据方法详解

可以将这段代码封装为一个函数。爬取百度视频的其他栏目。

python用match()函数爬数据方法详解

测试: 百度视频的电影,电视剧,和动漫等栏目,网页上的格式基本相同,所以用上面的函数直接套用。

打开百度视频的动漫,复制源代码,存为bb.txt。

同样可以爬取网址和视频名称。

以上仅是练习match()函数的例子。

python用match()函数爬数据方法详解

以上就是关于python如何用match()函数爬数据的全部内容,感谢大家的阅读和对三水点靠木的支持。

Python 相关文章推荐
Python3基础之函数用法
Aug 13 Python
在Python中使用判断语句和循环的教程
Apr 25 Python
python验证码识别实例代码
Feb 03 Python
使用Python更换外网IP的方法
Jul 09 Python
python编辑用户登入界面的实现代码
Jul 16 Python
Python补齐字符串长度的实例
Nov 15 Python
Python面向对象之继承和多态用法分析
Jun 08 Python
python原类、类的创建过程与方法详解
Jul 19 Python
Python之指数与E记法的区别详解
Nov 21 Python
Python基于wordcloud及jieba实现中国地图词云图
Jun 09 Python
keras K.function获取某层的输出操作
Jun 29 Python
python爬虫破解字体加密案例详解
Mar 02 Python
django的聚合函数和aggregate、annotate方法使用详解
Jul 23 #Python
PyCharm 配置远程python解释器和在本地修改服务器代码
Jul 23 #Python
python实现DEM数据的阴影生成的方法
Jul 23 #Python
Django REST framework 如何实现内置访问频率控制
Jul 23 #Python
详解pandas中MultiIndex和对象实际索引不一致问题
Jul 23 #Python
python视频按帧截取图片工具
Jul 23 #Python
python如何实现从视频中提取每秒图片
Oct 22 #Python
You might like
PHP获取类中常量,属性,及方法列表的方法
2009/04/09 PHP
PHP 引用文件技巧
2010/03/02 PHP
thinkPHP的Html模板标签使用方法
2012/11/13 PHP
深入php函数file_get_contents超时处理的方法详解
2013/06/03 PHP
解析:使用php mongodb扩展时 需要注意的事项
2013/06/18 PHP
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
2014/06/27 PHP
PHP设置头信息及取得返回头信息的方法
2016/01/25 PHP
PHP在线打包下载功能示例
2016/10/15 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
2020/03/02 PHP
js查找父节点的简单方法
2008/06/28 Javascript
用cssText批量修改样式
2009/08/29 Javascript
IE中createElement需要注意的一个问题
2010/07/13 Javascript
javascript跟随滚动效果插件代码(javascript Follow Plugin)
2013/08/03 Javascript
js中点击空白区域时文本框与隐藏层的显示与影藏问题
2013/08/26 Javascript
jquery实现加载进度条提示效果
2015/11/23 Javascript
JavaScript实现定时页面跳转功能示例
2017/02/14 Javascript
BootstrapTable refresh 方法使用实例简单介绍
2017/02/20 Javascript
webpack实现热加载自动刷新的方法
2017/07/30 Javascript
使用webpack3.0配置webpack-dev-server教程
2018/05/29 Javascript
bootstrap treeview 树形菜单带复选框及级联选择功能
2018/06/08 Javascript
Angular ElementRef简介及其使用
2018/10/01 Javascript
antd组件Upload实现自己上传的实现示例
2018/12/18 Javascript
微信公众号获取用户地理位置并列出附近的门店的示例代码
2019/07/25 Javascript
JavaScript实现简单验证码
2020/08/24 Javascript
Python使用matplotlib实现绘制自定义图形功能示例
2018/01/18 Python
django ajax json的实例代码
2018/05/29 Python
python读取word文档,插入mysql数据库的示例代码
2018/11/07 Python
django的ORM模型的实现原理
2019/03/04 Python
python的pstuil模块使用方法总结
2019/07/26 Python
大学毕业自我鉴定范文
2014/02/03 职场文书
行政助理的岗位职责
2014/02/18 职场文书
保健品市场营销方案
2014/03/31 职场文书
公司股东合作协议书
2014/09/14 职场文书
2015年重阳节慰问信
2015/03/23 职场文书
2019年大学生职业生涯规划书最新范文
2019/03/25 职场文书
MySQL索引失效场景及解决方案
2022/07/23 MySQL