- #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-----------------------"
来源: http://www.phpxs.com/code/1004860/