[转]Python下载百度新歌100的代码
http://images.cnblogs.com/cnblogs_com/maplye/Images/OutliningIndicators/None.gif#!/usr/bin/pythonhttp://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]