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程序中的观察者模式结构编写示例
May 27 Python
python技能之数据导出excel的实例代码
Aug 11 Python
简单的python协同过滤程序实例代码
Jan 31 Python
Python多进程multiprocessing.Pool类详解
Apr 27 Python
利用Python写一个爬妹子的爬虫
Jun 08 Python
python3实现多线程聊天室
Dec 12 Python
对python 合并 累加两个dict的实例详解
Jan 21 Python
python解析yaml文件过程详解
Aug 30 Python
python装饰器相当于函数的调用方式
Dec 27 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
Feb 05 Python
python pandas.DataFrame.loc函数使用详解
Mar 26 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
Jun 09 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应用程序来获取Web服务器的状态信息
2006/10/09 PHP
PHP利用Mysql锁解决高并发的方法
2018/09/04 PHP
JavaScript For Beginners(转载)
2007/01/05 Javascript
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
详谈 Jquery Ajax异步处理Json数据.
2011/09/09 Javascript
cookie的secure属性详解
2015/04/08 Javascript
Javascript中的作用域和上下文深入理解
2015/07/03 Javascript
js动态生成Html元素实现Post操作(createElement)
2015/09/14 Javascript
一种新的javascript对象创建方式Object.create()
2015/12/28 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
2017/03/09 Javascript
基于JavaScript实现淘宝商品广告效果
2017/08/10 Javascript
解决vue-cli创建项目的loader问题
2018/03/13 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
这应该是最详细的响应式系统讲解了
2019/07/22 Javascript
ES10的13个新特性示例(小结)
2019/09/23 Javascript
Python进程通信之匿名管道实例讲解
2015/04/11 Python
python通过定义一个类实例作为ftp回调方法
2015/05/04 Python
Windows环境下python环境安装使用图文教程
2018/03/13 Python
Python实现的redis分布式锁功能示例
2018/05/29 Python
浅谈django的render函数的参数问题
2018/10/16 Python
详解Python用户登录接口的方法
2019/04/17 Python
numpy np.newaxis 的实用分享
2019/11/30 Python
sklearn-SVC实现与类参数详解
2019/12/10 Python
pytorch 归一化与反归一化实例
2019/12/31 Python
基于第一个PhoneGap(cordova)的应用详解
2013/05/03 HTML / CSS
英国手机零售商:Metrofone
2019/03/18 全球购物
婚前财产公证书
2014/04/10 职场文书
养成教育经验材料
2014/05/26 职场文书
教师考核评语大全
2014/12/31 职场文书
大三学生英语考试作弊检讨书
2015/01/01 职场文书
人事局接收函
2015/01/30 职场文书
毕业论文致谢格式模板
2015/05/14 职场文书
外出听课学习心得体会
2016/01/15 职场文书
windows11怎么查看wifi密码? win11查看wifi密码的技巧
2021/11/21 数码科技
Apache Pulsar集群搭建部署详细过程
2022/02/12 Servers