这是一个非常简单的爬虫小程序,不过非常有利于对Python正则表达式的理解。
首先,我们确定目标网页
http://www.imooc.com/course/list
我们要用的python模块有urllib2以及re模块:
import urllib2
import re
抓取目标网页:
req = urllib2.urlopen('http://www.imooc.com/course/list')
html = req.read()
这时候我们发现图片在html文件中的标签是这样的:
<img class="course-banner lazy" data-original="http://img.mukewang.com/5704a5d50001582f06000338-240-135.jpg"
由此,我们就能通过如下方式找到整个页面的全部图片链接:
links = re.findall(r'http:.+\.jpg',html)
随后我发现得到的链接中还有这样的形式:
'http://img.mukewang.com/56f22f3900012d0206000338-240-135.jpg" src="http://img.mukewang.com/56f22f3900012d0206000338-240-135.jpg',
这显然是不利于我们下载图片的,然后我想到了可以用限制中间的字符的数量来分割链接:
In [56]: links = re.findall(r'http:.+{5,60}\.jpg',html)
这样,就得到了整个网页内所有课程图片的链接,随后,通过一个for循环将图片依次下载到本地:
i = 1
for link in links:
f = open(str(i) + '.jpg','w')
req = urllib2.urlopen(link)
buf = req.read()
f.wirte(buf)
i += 1
最后,得到了整个页面的课程图片