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 相关文章推荐
简单的Python2.7编程初学经验总结
Apr 01 Python
将Python中的数据存储到系统本地的简单方法
Apr 11 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
Mar 15 Python
PyCharm配置mongo插件的方法
Nov 30 Python
Python进阶之自定义对象实现切片功能
Jan 07 Python
详解python校验SQL脚本命名规则
Mar 22 Python
Python GUI编程 文本弹窗的实例
Jun 11 Python
python简单实现矩阵的乘,加,转置和逆运算示例
Jul 10 Python
Python大数据之使用lxml库解析html网页文件示例
Nov 16 Python
解决pycharm最左侧Tool Buttons显示不全的问题
Dec 17 Python
Python API len函数操作过程解析
Mar 05 Python
Python命令行参数argv和argparse该如何使用
Feb 08 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
综合图片计数器
2006/10/09 PHP
php的计数器程序
2006/10/09 PHP
建立文件交换功能的脚本(二)
2006/10/09 PHP
用缓存实现静态页面的测试
2006/12/06 PHP
yii2 页面底部加载css和js的技巧
2016/04/21 PHP
PHP flush 函数使用注意事项
2016/08/26 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
js宝典学习笔记(上)
2007/01/10 Javascript
JavaScript高级程序设计 扩展--关于动态原型
2010/11/09 Javascript
分享14个很酷的jQuery导航菜单插件
2011/04/25 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
深入浅出webpack教程系列_安装与基本打包用法和命令参数详解
2017/09/10 Javascript
Vue入门之animate过渡动画效果
2018/04/08 Javascript
jQuery pjax 应用简单示例
2018/09/20 jQuery
微信小程序实现选项卡滑动切换
2020/10/22 Javascript
用js实现放大镜效果
2020/10/28 Javascript
[02:49]DOTA2完美大师赛首日观众采访
2017/11/23 DOTA
python超简单解决约瑟夫环问题
2015/05/12 Python
使用Python实现正态分布、正态分布采样
2019/11/20 Python
Python socket服务常用操作代码实例
2020/06/22 Python
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
红色康乃馨酒店:Red Carnation Hotels
2017/06/22 全球购物
惠普加拿大在线商店:HP加拿大
2017/09/15 全球购物
Eagle Eyes Optics鹰眼光学:高性能太阳镜
2018/12/07 全球购物
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
东南亚冒险旅行与活动:Adventoro
2019/10/16 全球购物
货代行业个人求职简历的自我评价
2013/10/22 职场文书
税务专业毕业生自荐信
2013/11/10 职场文书
关于美容院的活动方案
2014/08/14 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
法人代表身份证明书及授权委托书
2014/09/16 职场文书
2014年镇党建工作汇报材料
2014/11/02 职场文书
作文评语集锦
2014/12/25 职场文书
前端JavaScript大管家 package.json
2021/11/02 Javascript
聊聊Python String型列表求最值的问题
2022/01/18 Python
python index() 与 rindex() 方法的使用示例详解
2022/12/24 Python