码迷,mamicode.com
首页 > 编程语言 > 详细

Python正则表达式使用过程中的小细节

时间:2015-10-15 01:12:49      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

今天用Python写了个简单的爬虫程序,抓取虎扑篮球(nba.hupu.com)的首页内容,代码如下:

1 #coding:gb2312
2 import urllib2, re
3 webpage = urllib2.urlopen(http://nba.hupu.com)
4 text = webpage.read()
5 m = re.search(<a href=(.*) (.*)?>彩票</a>, text)
6 print m.group(1)

按照预想应该输出的结果是"http://lecai.hupu.com/,但是得到的结果却是:

 

"http://cba.hupu.com/" >CBA</a></li><li class="line">|</li><li><a href="http://soccer.hupu.com/" >国际足球</a></li><li class="line">|</li><li><a href="http://soccer.hupu.com/china/" >中国足球</a></li><li class="line">|</li><li><a href="http://racing.hupu.com/" >赛车</a></li><li class="line">|</li><li><a href="http://tennis.hupu.com/" >网球</a></li><li class="line">|</li><li><a href="http://zb.hupu.com/" target="_blank">装备</a></li><li class="line">|</li><li><a href="http://www.shihuo.cn/" target="_blank">识货</a></li><li class="line">|</li><li><a href="http://lecai.hupu.com/"

 

经过思考后发现问题所在,根据Python正则表达式的贪婪匹配原则,Python会匹配从 <a href= 开始到 彩票 的最长字符串,所以自然会得到上述结果。

此外也需要注意 <a href=(.*) (.*)?>彩票</a> 两个group中的空格,若没有空格,Python将会将随后的target="_blank"也进行匹配,空格在此相当于起分隔的作用。

Python正则表达式使用过程中的小细节

标签:

原文地址:http://www.cnblogs.com/jzincnblogs/p/4881197.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!