python学习:urllib库学习:制作简易爬虫下载图片
本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.
环境:
主机:WIN8
版本:python2.7.9
说明:
制作简易爬虫,对nba贴吧(http://tieba.baidu.com/f?ie=utf-8&kw=nba&fr=search)的图片进行下载,下载完一页,自动翻页下载
下载的部分图片:
下载中提示:
源代码:
import urllib import re #搜索所有帖子的链接 def search_link(link_src): print '报告:搜索所有帖子链接开始!' page_num = raw_input('请输入需要搜索的页数') #reg = r'href="(http.+?html)"' reg = r'href="(/p/.+?)"' linkre = re.compile(reg) count = 0 src = link_src link_list = [] for i in range(int(page_num)): #打开页面 link_src = src + 'pn=%d' %(i * 50) page = urllib.urlopen(link_src) html = page.read() print '当前第%d页' %(i + 1) print '当前搜索的链接为',link_src link_now = re.findall(linkre,html) print '本页链接数%d' %len(link_now) x = 0 for x in range(len(link_now)): link_now[x] = 'http://tieba.baidu.com' + link_now[x] count = count + 1 print link_now[x],count link_list.append(link_now[x]) print '报告:搜索所有帖子链接完成!' return link_list #下载图片 def download_img(link_list): print '报告:下载开始!' #图片过滤规则 reg = r'class="BDE_Image" src="(.+?jpg)"' imgre = re.compile(reg) x = 0 for imgurl in link_list: #打开链接 print '当前打开链接%s' %imgurl page = urllib.urlopen(imgurl) html = page.read() #图片链接表 img_list = re.findall(imgre,html) for img_url in img_list: try: urllib.urlretrieve(img_url,'%s.jpg' %x) x+=1 print "下载完成第%d张图片:%s" %(x,img_url) except Exception, e: print "下载图片失败:%s" %(img_url) print '报告:下载完成!' #链接源地址 link_src = "http://tieba.baidu.com/f?kw=nba&ie=utf-8&" #搜索所有帖子的链接 link_list = search_link(link_src) #下载图片 download_img(link_list)