打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
学会正则表达式!爬遍天下的网站!史上最全正则表达式全面解析!

3.编译成Pattern对象

对于会多次用到的正则表达式,我们可以调用re的compile()方法编译成

Pattern对象,调用的时候直接Pattern对象.xxx即可,从而提高运行效率。小编推荐大家加一下这个群:103456743这个群里好几千人了!大家遇到啥问题都会在里面交流!而且免费分享零基础入门料资料web开发 爬虫资料一整套!是个非常好的学习交流地方!也有程序员大神给大家热心解答各种问题!很快满员了。欲进从速哦!各种PDF等你来下载!全部都是免费的哦!只为帮助大家快速入门,所以小编在群里等你们过来一起交流学习呢!

附:group()方法与其他方法详解不引入括号,增个表达式作为一个组,是group(0)不引入()的话,代表整个表达式作为一个组,group = group(0)如果引入()的话,会把表达式分为多个分组,比如下面的例子:

输出结果:
除了group方法外还有三个常用的方法:
  • groups(): 从group(1)开始往后的所有的值,返回一个元组

  • start():返回匹配的开始位置

  • end():返回匹配的结束位置

  • span():返回一个元组组,表示匹配位置(开始,结束)

^(0|86|17951)?(13[0-9]|14[579]|15[0-35-9]|17[01678]|18[0-9])[0-9]{8}$

  • 5.第15到17顺序码,这里就是三个数字,对同年、同月、同日出生的人

    编定的顺序号,奇数分给男的,偶数分给女的:

  • 6.第18位校验码,0到9或者x和X

能推算出18的,那么推算出15的也不难了:

最后用|组合下:

^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(.([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$

匹配开头结尾示例

输出结果

卧槽,果然是北京所有的地区,然后每个地区的名字貌似都有一个超链接,F12看下指向哪里?

到这里就豁(huo)然开朗了,我们来捋一捋实现的流程:
  • 1.先拿到第一层的城市列表链接用列表存起来

  • 2.接着遍历列表去访问不同的城市列表链接,截取不同城市的城市名,城市编码存起来

流程看上去很简单,接着来实操一波。先是拿城市列表url
这个很容易拿,就直接贴代码了:

拿到需要的城市列表url:
接着随便点开一个,比如beijing.shtml,页面结构是这样的:想要的内容是这里的超链接:
F12看下页面结构,层次有点多,不过没关系,这样更能够锻炼我们
入手点一般都是离我们想要数据最近地方下手,我看上了:conMidtab3全局搜了一下,也就八个:
第一个直接就可以排除了:

输出下:

继续细扒,我们要的只是a这个东西:

输出下:

输出内容:

卧槽,就是我们想要的结果,美滋滋,接着把之前拿到所有

的城市列表都跑一波,存字典里返回,最后赛到一个大字典

里,然后写入到文件中,完成。

运行结果

如有侵权请联系小编删除哦!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Python 正则表达式 RE模块的使用方法
python中import re
正则表达式中Matcher的group()、start()、end()带参方法解析
Android中的正则表达式Regex使用
想要玩爬虫!正则表达式是你的必修课程!这篇足以你玩转爬虫了!
【20181130】- 在ExcelVBA中使用正则表达式
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服