lshboo 发表于 2017-5-6 10:11:29

[转]Python下载百度新歌100的代码

http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif#!/usr/bin/python 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif# -*- coding: utf-8 -*- 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif# Copyright (c) 2006 UbuntuChina <http://www.ubuntu.org.cn> 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif# License: GPLv2 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif# Author: oneleaf <oneleaf AT gmail.com> 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gifimport httplib 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gifimport re 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gifimport urllib 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gifimport os 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gifimport locale 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gifdef getdownurl(url): 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    urllist=[] 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    conn = httplib.HTTPConnection('mp3.baidu.com') 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    conn.request("GET",url) 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    response = conn.getresponse() 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    html=response.read() 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    conn.close() 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    expression='http://220.181.27.54/m(.*)</a>' 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    listSentence = re.findall(expression, html) 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    lineno=0 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    while lineno<len(listSentence): 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif        mp3url=re.search('title=(.*)onclick',listSentence) 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif        if mp3url: 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif           mp3url=mp3url.group(0) 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif           mp3url=re.search('http(\S*)',mp3url) 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif           if mp3url: 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif              mp3url=mp3url.group(0) 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif              try: 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif                  mp3url=mp3url.decode('gbk') 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif              except:pass 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif              urllist.append(mp3url) 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif        lineno+=2 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    return urllist 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gifdef downmp3(url,author,name,filelist): 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    filename=author+"-"+name; 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    for i in filelist: 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif        name=unicode(i,locale.getpreferredencoding()) 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif        if name.find(filename) == 0: 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif            print u"文件已经下载,忽略。" 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif            return 1 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    urllists=getdownurl(url) 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    for i in urllists:        
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif        print u"正在连接",i 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif        
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif        ext=i[-4:] 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif        try: 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif            urlopen = urllib.URLopener() 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif            fp=urlopen.open(i) 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif            data = fp.read() 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif            fp.close() 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif            filename=filename+ext; 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif            file=open(filename,'w+b') 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif            file.write(data) 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif            file.close() 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif            print u"下载成功!" 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif            return 1 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif        except: 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif            continue 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    return 0 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gifif __name__ == "__main__": 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    conn = httplib.HTTPConnection('list.mp3.baidu.com') 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    conn.request("GET",'/list/newhits.html?id=1') 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    response = conn.getresponse() 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    html=response.read().decode('gbk') 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    conn.close() 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    expression='<a href="http://mp3.baidu.com/m(.*)</a>' 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    listSentence = re.findall(expression, html) 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    lineno=0 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif    while lineno<len(listSentence): 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif       url=re.search('(.*)target',listSentence) 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif       url='/m'+url.group(0)[:-8] 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif       name=re.search('blank>(.*)',listSentence) 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif       name=name.group(0)[6:] 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif       author=re.search('blank>(.*)',listSentence+1]) 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif       author=author.group(0)[6:] 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif       print u"开始下载",author,name 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif       filelist=os.listdir('.'); 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif       if downmp3(url,author,name,filelist)==0: 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif          print u"下载",author,name,u'失败!' 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif       lineno+=2 
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif
页: [1]
查看完整版本: [转]Python下载百度新歌100的代码