作者:vpoet
日期:大约在夏季
注:代码随意copy 不用告诉我
主要功能:
1.搜索花瓣http://huaban.com/下的图片
2.选定下载图片数目
3.显示下载进度
4.创建目录并下载到桌面
注释少,凑合看。
#coding: utf-8 import urllib, urllib2, re, sys, os import random reload(sys) def Schedule(a,b,c): """a:已经下载的数据块 b:数据块的大小 c:远程文件的大小""" per = 100.0 * a * b / c if per > 100: per = 100 print '%.2f%%' % per def SearchAndDownLoadImg(SearchStr,NumPerPage,filepath): url = 'http://huaban.com/search/?q=%s&per_page=%s' % (SearchStr,str(NumPerPage)) Respon = urllib2.urlopen(url) Htm = Respon.read() print url+"\n\n\n" print "----------------Search Over,And Begin DownLoad----------------"+"\n\n" Patt=re.compile('"file":\{"farm":"farm1",.+?"bucket":"hbimg",.+?"key":"(.*?)",.+?"type":"image/(.*?)",.+?"width":') group = re.findall(Patt,Htm) #print "find total imgurl"+len(group)+"\n" x = 1 for item in group: imgurl=r"http://img.hb.aicdn.com/"+item[0]+"_fw658" urllib.urlretrieve(imgurl,filepath+'\pic%s.%s' % (str(x),item[1]),Schedule) print imgurl+"------>down over" +"\tpic"+ str(x) x = x+1 if __name__ == "__main__": print "Please input the picture you want to download:" SearchStr = raw_input() print "\n\n" print "Please input the PageNumber you want to download:" NumPerPage = raw_input() print "\n\n" print "-----------------------Begin Search---------------------------"+"\n" filenum = random.randint(20, 50) filename = 'PictureFile'+str(filenum) filepath = 'C:\Users\Administrator\Desktop'+'\\'+filename if(os.path.exists(filepath) == False): os.mkdir(filepath) #print filepath SearchAndDownLoadImg(SearchStr,NumPerPage,filepath) #http://img.hb.aicdn.com/23a58517fb73f86bca85937f069724486b3e00a44caa-GMc99I_sq75sf print"\n\n" print "---------------------All Down Over-----------------------"