欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python爬取qq music中的音樂url及批量下載

 更新時間:2017年03月23日 09:24:00   作者:dearvee  
這篇文章主要給大家介紹了利用Python爬取qq music中的音樂url及實現(xiàn)批量下載的相關(guān)資料,文中給出了詳細的介紹和示例代碼,相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。

前言

qq music上的音樂還是不少的,有些時候想要下載好聽的音樂,但有每次在網(wǎng)頁下載都是煩人的登錄什么的。于是,來了個qqmusic的爬蟲。至少我覺得for循環(huán)爬蟲,最核心的應(yīng)該就是找到待爬元素所在url吧。下面開始找吧(講的不對不要笑我)

實現(xiàn)如下

#尋找url:

  這個url可不想其他的網(wǎng)站那么好找。把我給累得不輕,關(guān)鍵是數(shù)據(jù)多,從那么多數(shù)據(jù)里面挑出有用的數(shù)據(jù),最后組合為music真正的music。昨天做的時候整理的幾個中間url:

#url1:https://c.y.qq.com/soso/fcgi-bin/client_search_cp?&lossless=0&flag_qc=0&p=1&n=20&w=雨蝶

#url2:https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg?&jsonpCallback=MusicJsonCallback&cid=205361747&[songmid]&C400+songmid+.m4a&guid=6612300644

#url3:http://dl.stream.qqmusic.qq.com/[filename]?vkey=[vkey](其中vkey代替該music特有的字符串)

requests(url1)

由搜索列表得到每個音樂的的songmid和mid(通過筆者觀察,這兩個值是每一個music特有的)。有了這兩個值。下面就得到了完整的url2的具體值。

requests(url2)

得到搜索結(jié)果中每個music的vkey值,經(jīng)過筆者觀察,filename即為C400songmid.m4a。進而確定了url3的具體值。而url3即為音樂的真實url,由于筆者對此url的其他參數(shù)研究的不夠透徹,因此每次最多返回20首music的url,有了url,那Tencent的music就可以盡情的享受了。

#代碼

下面來個srcs的代碼塊:

import requests
import urllib
import json
word = '雨蝶'
res1 = requests.get('https://c.y.qq.com/soso/fcgi-bin/client_search_cp?&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=20&w='+word)
jm1 = json.loads(res1.text.strip('callback()[]'))
jm1 = jm1['data']['song']['list']
mids = []
songmids = []
srcs = []
songnames = []
singers = []
for j in jm1:
 try:
  mids.append(j['media_mid'])
  songmids.append(j['songmid'])
  songnames.append(j['songname'])
  singers.append(j['singer'][0]['name'])
 except:
  print('wrong')


for n in range(0,len(mids)):
 res2 = requests.get('https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg?&jsonpCallback=MusicJsonCallback&cid=205361747&songmid='+songmids[n]+'&filename=C400'+mids[n]+'.m4a&guid=6612300644')
 jm2 = json.loads(res2.text)
 vkey = jm2['data']['items'][0]['vkey']
 srcs.append('http://dl.stream.qqmusic.qq.com/C400'+mids[n]+'.m4a?vkey='+vkey+'&guid=6612300644&uin=0&fromtag=66')

#下載:

有了srcs,下載自然不成問題。當然獲取歌手以及歌名也是可以把src復(fù)制到瀏覽器下載。也可以用大Python批量下載,無非就是一個循環(huán),跟我們前面下載sogou圖片方法類似:(筆者py版本:python3.3.3)

print('For '+word+' Start download...') 
x = len(srcs)
for m in range(0,x):
 print(str(m)+'***** '+songnames[m]+' - '+singers[m]+'.m4a *****'+' Downloading...')
 try:
  urllib.request.urlretrieve(srcs[m],'d:/music/'+songnames[m]+' - '+singers[m]+'.m4a')
 except:
  x = x - 1
  print('Download wrong~')
print('For ['+word+'] Download complete '+str(x)+'files !')

以上兩段代碼,寫在同一py文件,運行即可下載對應(yīng)關(guān)鍵詞的music

#運行效果:

 

下載開始,下面...到下載目錄看看:

music已經(jīng)成功下載。。。

至此,關(guān)于qqmusic的url爬蟲程序思路及實現(xiàn)敘述完畢。

#用途:

musicplayer做好殼子的同學(xué),應(yīng)該用得上吧。其實做這個初衷是要為我的基于html的musicplayer服務(wù)的。但現(xiàn)在卡在了js調(diào)用py的環(huán)節(jié),我再找找吧,明白的同學(xué)望告知,萬分感謝!

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Python用csv寫入文件_消除空余行的方法

    Python用csv寫入文件_消除空余行的方法

    今天小編就為大家分享一篇Python用csv寫入文件_消除空余行的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • TensorFlow和Numpy矩陣操作中axis理解及axis=-1的解釋

    TensorFlow和Numpy矩陣操作中axis理解及axis=-1的解釋

    在調(diào)用numpy庫中的concatenate()時,有遇到axis=-1/1/0的情況,下面這篇文章主要給大家介紹了關(guān)于TensorFlow和Numpy矩陣操作中axis理解及axis=-1解釋的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • Python3爬樓梯算法示例

    Python3爬樓梯算法示例

    這篇文章主要介紹了Python3爬樓梯算法,涉及Python基于面向?qū)ο蟮淖址闅v、切片、運算等相關(guān)操作技巧,需要的朋友可以參考下
    2019-03-03
  • 使用systemd部署服務(wù)的過程解析

    使用systemd部署服務(wù)的過程解析

    這篇文章主要介紹了使用systemd部署服務(wù)的過程解析,本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • 用python開發(fā)一款操作MySQL的小工具

    用python開發(fā)一款操作MySQL的小工具

    一個簡單的使用python操作mysql的工具,提供了一些類似sql語法的方法,最終拼接成sql。可以很好地處理一些常見場景,不依賴orm 的同時避免手寫大量sql
    2021-05-05
  • Python中for循環(huán)可迭代對象迭代器及生成器源碼學(xué)習

    Python中for循環(huán)可迭代對象迭代器及生成器源碼學(xué)習

    這篇文章主要為大家介紹了Python中for循環(huán)可迭代對象迭代器及生成器的源碼學(xué)習,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • 用python 制作圖片轉(zhuǎn)pdf工具

    用python 制作圖片轉(zhuǎn)pdf工具

    這篇文章主要介紹了用python 制作圖片轉(zhuǎn)pdf工具的思路及代碼,非常詳細,有需要的小伙伴參考下
    2015-01-01
  • Django python雪花算法實現(xiàn)方式

    Django python雪花算法實現(xiàn)方式

    在Django項目中添加自定義模塊或應(yīng)用來封裝雪花算法,步驟包括創(chuàng)建應(yīng)用,編寫算法實現(xiàn)代碼至utils.py文件,及配置settings.py,此方法可方便在項目中隨處調(diào)用雪花算法,適用于需要唯一ID生成的場景
    2024-09-09
  • 基于python編寫監(jiān)控系統(tǒng)各項資源的腳本

    基于python編寫監(jiān)控系統(tǒng)各項資源的腳本

    這篇文章主要為大家詳細介紹了如何編寫一個python腳本,實現(xiàn)監(jiān)控網(wǎng)絡(luò)的流量、CPU使用率、內(nèi)存使用率和磁盤使用情況,感興趣的小伙伴可以了解下
    2023-11-11
  • Python3實現(xiàn)的字典、列表和json對象互轉(zhuǎn)功能示例

    Python3實現(xiàn)的字典、列表和json對象互轉(zhuǎn)功能示例

    這篇文章主要介紹了Python3實現(xiàn)的字典、列表和json對象互轉(zhuǎn)功能,結(jié)合實例形式分析了Python使用json模塊針對json格式數(shù)據(jù)編碼轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05

最新評論