3.编译成Pattern对象 对于会多次用到的正则表达式,我们可以调用re的compile()方法编译成 Pattern对象,调用的时候直接Pattern对象.xxx即可,从而提高运行效率。小编推荐大家加一下这个群:103456743这个群里好几千人了!大家遇到啥问题都会在里面交流!而且免费分享零基础入门料资料web开发 爬虫资料一整套!是个非常好的学习交流地方!也有程序员大神给大家热心解答各种问题!很快满员了。欲进从速哦!各种PDF等你来下载!全部都是免费的哦!只为帮助大家快速入门,所以小编在群里等你们过来一起交流学习呢! 附:group()方法与其他方法详解不引入括号,增个表达式作为一个组,是group(0)不引入()的话,代表整个表达式作为一个组,group = group(0)如果引入()的话,会把表达式分为多个分组,比如下面的例子: 输出结果: 除了group方法外还有三个常用的方法:
^(0|86|17951)?(13[0-9]|14[579]|15[0-35-9]|17[01678]|18[0-9])[0-9]{8}$
能推算出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)然开朗了,我们来捋一捋实现的流程:
流程看上去很简单,接着来实操一波。先是拿城市列表url 这个很容易拿,就直接贴代码了: 拿到需要的城市列表url: 接着随便点开一个,比如beijing.shtml,页面结构是这样的:想要的内容是这里的超链接: F12看下页面结构,层次有点多,不过没关系,这样更能够锻炼我们 入手点一般都是离我们想要数据最近地方下手,我看上了:conMidtab3全局搜了一下,也就八个: 第一个直接就可以排除了: 输出下: 继续细扒,我们要的只是a这个东西: 输出下: 输出内容: 卧槽,就是我们想要的结果,美滋滋,接着把之前拿到所有 的城市列表都跑一波,存字典里返回,最后赛到一个大字典 里,然后写入到文件中,完成。 运行结果: 如有侵权请联系小编删除哦! |
|