最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python爬取qq music中的音樂(lè)url及批量下載

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

前言

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

實(shí)現(xiàn)如下

#尋找url:

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

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

requests(url2)

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

#代碼

下面來(lái)個(gè)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,下載自然不成問(wèn)題。當(dāng)然獲取歌手以及歌名也是可以把src復(fù)制到瀏覽器下載。也可以用大Python批量下載,無(wú)非就是一個(gè)循環(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ùn)行即可下載對(duì)應(yīng)關(guān)鍵詞的music

#運(yùn)行效果:

 

下載開(kāi)始,下面...到下載目錄看看:

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

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

#用途:

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

總結(jié)

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

相關(guān)文章

  • Python讀取Excel數(shù)據(jù)并生成圖表過(guò)程解析

    Python讀取Excel數(shù)據(jù)并生成圖表過(guò)程解析

    這篇文章主要介紹了Python讀取Excel數(shù)據(jù)并生成圖表過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • python使用scapy模塊實(shí)現(xiàn)ping掃描的過(guò)程詳解

    python使用scapy模塊實(shí)現(xiàn)ping掃描的過(guò)程詳解

    這篇文章主要介紹了python使用scapy模塊實(shí)現(xiàn)ping掃描的過(guò)程詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • python paramiko模塊學(xué)習(xí)分享

    python paramiko模塊學(xué)習(xí)分享

    這篇文章主要為大家分享了python paramiko模塊的學(xué)習(xí)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 對(duì)Python中9種生成新對(duì)象的方法總結(jié)

    對(duì)Python中9種生成新對(duì)象的方法總結(jié)

    今天小編就為大家分享一篇對(duì)Python中9種生成新對(duì)象的方法總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • 如何用PyMongo在Python中操作MongoDB的超完整指南

    如何用PyMongo在Python中操作MongoDB的超完整指南

    本文詳細(xì)介紹了如何使用Python的PyMongo庫(kù)操作MongoDB,涵蓋了數(shù)據(jù)庫(kù)連接、文檔創(chuàng)建、數(shù)據(jù)操作和高級(jí)功能的使用,通過(guò)這些知識(shí)點(diǎn),開(kāi)發(fā)者可以高效地管理和操作MongoDB數(shù)據(jù)庫(kù),需要的朋友可以參考下
    2024-11-11
  • web自動(dòng)化測(cè)試Selenium點(diǎn)擊元素的常用方法

    web自動(dòng)化測(cè)試Selenium點(diǎn)擊元素的常用方法

    在Web自動(dòng)化測(cè)試中,Selenium提供多種點(diǎn)擊方法,常用的click()方法通過(guò)選中元素并觸發(fā)點(diǎn)擊事件,若click()方法不穩(wěn)定,可以采用JavaScript執(zhí)行點(diǎn)擊或使用ActionChains類模擬鼠標(biāo)點(diǎn)擊,需要的朋友可以參考下
    2024-09-09
  • win7+Python3.5下scrapy的安裝方法

    win7+Python3.5下scrapy的安裝方法

    這篇文章主要介紹了win7+Python3.5下scrapy的安裝方法
    2018-07-07
  • Python OpenCV實(shí)戰(zhàn)之與機(jī)器學(xué)習(xí)的碰撞

    Python OpenCV實(shí)戰(zhàn)之與機(jī)器學(xué)習(xí)的碰撞

    機(jī)器學(xué)習(xí)是人工智能的子集,為計(jì)算機(jī)以及其它具有計(jì)算能力的系統(tǒng)提供自動(dòng)預(yù)測(cè)或決策的能力。本文主要介紹了OpenCV 提供的常見(jiàn)機(jī)器學(xué)習(xí)算法和技術(shù),用于解決計(jì)算機(jī)視覺(jué)項(xiàng)目中的實(shí)際問(wèn)題,需要的朋友可以參考一下
    2021-12-12
  • Pandas統(tǒng)計(jì)計(jì)數(shù)value_counts()的使用

    Pandas統(tǒng)計(jì)計(jì)數(shù)value_counts()的使用

    本文主要介紹了Pandas統(tǒng)計(jì)計(jì)數(shù)value_counts()的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • python 實(shí)現(xiàn)12bit灰度圖像映射到8bit顯示的方法

    python 實(shí)現(xiàn)12bit灰度圖像映射到8bit顯示的方法

    這篇文章主要介紹了python 實(shí)現(xiàn)12bit灰度圖像映射到8bit顯示的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評(píng)論

饶阳县| 剑阁县| 神农架林区| 衡山县| 公安县| 罗山县| 乌兰浩特市| 通辽市| 平乐县| 平谷区| 玛纳斯县| 中卫市| 乌兰县| 武清区| 上饶市| 仪征市| 社旗县| 轮台县| 潞城市| 颍上县| 福安市| 扶绥县| 长阳| 南陵县| 沙坪坝区| 独山县| 观塘区| 巴里| 南宁市| 翁源县| 宜黄县| 丰台区| 子洲县| 岳普湖县| 新竹市| 卫辉市| 淳化县| 成武县| 会东县| 平顺县| 吉水县|