一次性付费进群,长期免费索取教程,没有付费教程。
教程列表见微信公众号底部菜单
进微信群回复公众号:微信群;QQ群:460500587
微信公众号:计算机与网络安全
ID:Computer-network
re模块是文件处理中必不可少的模块,主要应用于字符串的查找、定位等。在使用网络爬虫时,即使没有爬虫框架,re模块配合urllib模块也可以完成简单的爬虫功能。先来看看所谓的正则表达式,以下是Python支持的正则表达式元字符和语法。
[…]:字符集(字符类)。对应字符集中的任意字符,第一个字符是^则取反。a[bc]d匹配abd和acd。
Python的re模块提供了两种不同的原始操作:match和search。match是从字符串的起点开始做匹配,而search(perl默认)是对字符串做任意匹配。最常用的几个re模块方法如下:
re.compile(pattern, flags=0):将字符串形式的正则表达式编译为Pattern对象。
re.search(string[, pos[, endpos]]):从string的任意位置开始匹配。
re.match(string[, pos[, endpos]]):从string的开头开始匹配。
re.findall(string[, pos[, endpos]]):从string任意位置开始匹配,返回一个列表。
简单地测试一下,打开IDLE,执行命令:
图1 re匹配字符串
现在用re模块和urllib模块来做一个简单的网络爬虫,例如看看电影院播放的电影。先找找最近的影院,就以金逸影院为例。找到影院页面http://www.wandacinemas.com/,先使用urllib模块抓取整个网页,再使用re模块获取影视信息。
按Esc键,进入命令模式后输入:wq,保存crawlWithRe.py。crawlWithRe.py使用urllib模块获取URL的返回信息,然后使用re模块从结果中过滤得到当日电影的列表,最后显示到屏幕上。执行命令:
图2 运行crawlWithRe.py
看起来不像是网络爬虫,对吗?严格来说这个就是网络爬虫了,只是爬取的内容很简单、也很少罢了。当爬取的内容比较少的时候,网络爬虫也可以这么写。稍微复杂点的、爬取内容多一点的,按照这个方法写就很痛苦了,简单点的办法就是使用爬虫框架。
微信公众号:计算机与网络安全
ID:Computer-network