Python笔记2--正则表达式与爬虫案例

来源:互联网 发布:java语言编程软件 编辑:程序博客网 时间:2024/06/06 00:02

正则表达式是一种小型的,高度专业化的编程语言,在很多语言(javascript,Python等)中都有,在Python中通过re模块实现,是一种强有力的匹配字符串神器。

个人的学习正则表达式分成三步:

<1>初始正则表达式,了解元字符,以及熟练掌握经常使用的元字符;

<2>掌握正则表达式的编译规则,熟练使用正则表达式匹配字符串;

<3>使用正则表达式完成Python小爬虫。

首先,先注释一下常用的元字符(元字符本身在字符集中不起作用):

[ ]:用来指定一个字符集,比如[abc],[a-z],[0-9]等;

^ :匹配行首;

$ :匹配行尾;

\d:匹配一个数字;  \w:匹配一个字母或数字;  \w:匹配一个空格;

*:任意个字符(包括0); 

+ :至少1个字符;

?:0个或1个字符;

{n} :n个字符; {n,m}:n-m个字符。

常用的元字符就是这些,下面举个例子:

\d{3}\s\-\s\d{8}可以与010 - 12345678相匹配。


其次,正则表达式的编译规则,正则表达式默认采用的是贪婪匹配,也就是匹配尽可能多的字符。Python中使用re模块进行正则表达式的编译。在re模块中

需学会使用一些编译标志,比如re.S(匹配包括换行在内的所有字符),re.I(无视大小写),re.M(匹配多行)等。这里还有一个注意点就是分组,用()表

示分组,举个例子:



可以看出分组的作用了,分组不仅可以将某一集合看成一个整体,也可以直接提取出自己想要的部分,这在一些爬虫中使用会很方便。


最后,使用正则表达式来进行一个简单的爬虫案例。

这里选用百度百科的首页进行png格式的图片下载:



当然也可以通过Python先查看该网页的源代码,结果如下图:

这里可以找到png格式的图片链接,格式均为src=”http******.png“,所以我们便可以将正则表达式写成如上源程序代码,结果如下:


可以看到,图片已经下载到指定的目录中了,这样一个利用正则表达式的小爬虫案例便完成了。

0 0
原创粉丝点击