正则表达式爬取慕课网课程图片

来源:互联网 发布:台风灾害数据网址 编辑:程序博客网 时间:2024/06/15 19:47

这是一个非常简单的爬虫小程序,不过非常有利于对Python正则表达式的理解。
首先,我们确定目标网页
http://www.imooc.com/course/list
我们要用的python模块有urllib2以及re模块:

import urllib2import 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 = 1for link in links:    f = open(str(i) + '.jpg','w')    req = urllib2.urlopen(link)    buf = req.read()    f.wirte(buf)    i += 1

最后,得到了整个页面的课程图片
这里写图片描述

原创粉丝点击