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中使用第三方库xlrd来写入Excel文件示例
Apr 05 Python
django实现用户登陆功能详解
Dec 11 Python
Python文本统计功能之西游记用字统计操作示例
May 07 Python
基于python requests库中的代理实例讲解
May 07 Python
python实现简单登陆系统
Oct 18 Python
详解python 模拟豆瓣登录(豆瓣6.0)
Apr 18 Python
Django中使用CORS实现跨域请求过程解析
Aug 05 Python
Python编写打字训练小程序
Sep 26 Python
Pycharm小白级简单使用教程
Jan 08 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
Mar 30 Python
20行Python代码实现视频字符化功能
Apr 13 Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
Sep 16 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 OPCode缓存 APC详细介绍
2010/10/12 PHP
PHP多个版本的分析解释
2011/07/21 PHP
php笔记之:初探PHPcms模块开发介绍
2013/04/26 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
javascript基础的动画教程,直观易懂
2007/01/10 Javascript
jquery中的mouseleave和mouseout的区别 模仿下拉框效果
2012/02/07 Javascript
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
2012/05/14 Javascript
JavaScript中将一个值转换为字符串的方法分析[译]
2012/09/21 Javascript
使用百度地图api实现根据地址查询经纬度
2014/12/11 Javascript
JavaScript定时显示广告代码分享
2015/03/02 Javascript
javascript实现表单提交后,提交按钮不可用的方法
2015/04/18 Javascript
JavaScript实现的简单烟花特效代码
2015/10/20 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
2016/01/04 Javascript
JSON的parse()方法介绍
2019/01/31 Javascript
JavaScript"模拟事件"的注意要点详解
2019/02/13 Javascript
vue 移动端注入骨架屏的配置方法
2019/06/25 Javascript
Python脚本实现格式化css文件
2015/04/08 Python
编写Python脚本使得web页面上的代码高亮显示
2015/04/24 Python
Django中处理出错页面的方法
2015/07/15 Python
一个基于flask的web应用诞生 flask和mysql相连(4)
2017/04/11 Python
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
Python使用PIL模块生成随机验证码
2017/11/21 Python
Python图像处理之简单画板实现方法示例
2018/08/30 Python
python Pandas如何对数据集随机抽样
2019/07/29 Python
python读取Excel表格文件的方法
2019/09/02 Python
Ubuntu16安装Python3.9的实现步骤
2020/12/15 Python
CSS3 实现侧边栏展开收起动画
2014/12/22 HTML / CSS
详解CSS3中@media的实际使用
2015/08/04 HTML / CSS
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
市场部管理制度
2014/02/02 职场文书
个人四风对照检查材料
2014/09/26 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
关于JS中的作用域中的问题思考分享
2022/04/06 Javascript
Win11快速关闭所有广告推荐
2022/04/19 数码科技
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技