python之花瓣美女下载

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

作者: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-----------------------"