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 相关文章推荐
下载糗事百科的内容_python版
Dec 07 Python
python 将字符串转换成字典dict
Mar 24 Python
Python3 能振兴 Python的原因分析
Nov 28 Python
Python调用C语言开发的共享库方法实例
Mar 18 Python
python抓取最新博客内容并生成Rss
May 17 Python
python实现发送和获取手机短信验证码
Jan 15 Python
最大K个数问题的Python版解法总结
Jun 16 Python
Python数据分析库pandas基本操作方法
Apr 08 Python
Python Numpy库datetime类型的处理详解
Jul 13 Python
wxPython实现带颜色的进度条
Nov 19 Python
Python argparse模块使用方法解析
Feb 20 Python
如何使用Python处理HDF格式数据及可视化问题
Jun 24 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实现根据url自动生成缩略图的方法
2014/09/23 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
2016/03/23 PHP
php实现36进制与10进制转换功能示例
2017/01/10 PHP
几个比较经典常用的jQuery小技巧
2010/03/01 Javascript
jQuery事件 delegate()使用方法介绍
2012/10/30 Javascript
jquery showModelDialog的使用方法示例详解
2013/11/19 Javascript
代码获取历史上的今天发生的事
2014/04/11 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
Yii2使用Bootbox插件实现自定义弹窗
2015/04/02 Javascript
jQuery团购倒计时特效实现方法
2015/05/07 Javascript
jQuery实现图片文字淡入淡出效果
2015/12/21 Javascript
js时间控件只显示年月
2017/01/08 Javascript
vue 如何添加全局函数或全局变量以及单页面的title设置总结
2017/06/01 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
2018/08/09 Javascript
JS出现404错误原理及解决方案
2020/07/01 Javascript
[02:04]2014DOTA2国际邀请赛 BBC小组赛第三天总结
2014/07/12 DOTA
python通过apply使用元祖和列表调用函数实例
2015/05/26 Python
Python简单实现enum功能的方法
2016/04/25 Python
python django使用haystack:全文检索的框架(实例讲解)
2017/09/27 Python
Python编程之gui程序实现简单文件浏览器代码
2017/12/08 Python
python抓取文件夹的所有文件
2018/02/27 Python
总结python中pass的作用
2019/02/27 Python
Python使用dict.fromkeys()快速生成一个字典示例
2019/04/24 Python
python网络应用开发知识点浅析
2019/05/28 Python
python处理大日志文件
2019/07/23 Python
wxPython实现画图板
2020/08/27 Python
使用TFRecord存取多个数据案例
2020/02/17 Python
MoviePy常用剪辑类及Python视频剪辑自动化
2020/12/18 Python
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
CAT鞋美国官网:CAT Footwear
2017/11/27 全球购物
《一件运动衫》教学反思
2014/02/19 职场文书
2014派出所所长群众路线对照检查材料思想汇报
2014/09/18 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
1000字打架检讨书
2014/11/03 职场文书
开展警示教育活动总结
2015/05/09 职场文书
MyBatis配置文件解析与MyBatis实例演示
2022/04/07 Java/Android