百度音樂新歌榜100曲自動下載,並改名

運行環境:windows,linux

python版本:2.x

中間有抄襲開源中國裏某大牛的代碼,望請原諒

 

  1. #!/usr/bin/python  
  2. #coding:utf8  
  3.  
  4. import re,urllib  
  5.  
  6. #url='http://music.baidu.com' 
  7. url='http://music.baidu.com/top/new' #百度新歌100榜
  8. openurl=urllib.URLopener()  
  9. headers = ('User-Agent','Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1')  
  10. openurl.addheaders = [headers]   #瀏覽器仿真
  11. data=openurl.open(url).read()   #獲取HTML代碼
  12. datadata=data.decode('utf8')   #html轉換utf8編碼
  13. music_sid=re.findall(re.compile(r"'sid': '(.*)', 'sname'"),data) #正則匹配sid 
  14. music_sname=re.findall(re.compile(r"'sname': '(.*)', 'author'"),data)  #正則匹配歌曲名
  15. music_author=re.findall(re.compile(r"'author': '(.*)' }"),data)   #正則匹配作者,或者演唱
  16.  
  17. file=open('downurl.txt','w')   #打開一個文本以寫模式打開
  18. for  i in range(len(music_sid)):   #循環一歌曲sid個數
  19. #   file.write(sid[i]+name[i]+'\n')  
  20. #   print  music_sid[i] + '  ' + music_sname[i] + '-' + music_author[i]  
  21.     print str(i) + ':            '+ music_sname[i] + '-' + music_author[i]   #序號加歌曲名
  22.     da=openurl.open('http://music.baidu.com/song/%s/download'% str(music_sid[0])).read() #打開下載頁面  
  23.     downurl=re.findall(re.compile(r'downlink="/data/music/file\?link=(.*)" type'),da)  #正則匹配下載地址
  24.     file.write(downurl[0]+'\n')   #下載地址寫到文本,這個可以註釋掉。
  25.     print '%s music file download Ing ........................'%music_sname[i]   #顯示內容
  26.     urllib.urlretrieve(downurl[0],music_sname[i]+'-'+music_author[i]+'.mp3')   #下載歌曲,命名
  27.     print '-'*50  
  28. file.close()  

 


 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章