日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

爬虫爬取下载qq音乐,又跟新的风口相关?(附源码和资料)

發布時間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 爬虫爬取下载qq音乐,又跟新的风口相关?(附源码和资料) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

↑?點擊上方?“一行數據”?關注 + 星標?~?

每周送書,絕不錯過

image

今年的風口一個接著一個,高產似母豬

  • 年初就騙我屯口罩,現在口罩都降到1毛錢了,我家里的10斤口罩不知道能用到什么時候

  • 后來又騙我屯頭盔,剛屯買完頭盔,居然說騎電瓶車又不用帶頭盔了???現在家里親戚騎自行車的小孩都被強行帶上頭盔了,對只是為了安全著想

  • 再后來地攤經濟又開始了,沒有防備一場大雨又讓我們回到了解放前,只記得那場大雨之后天臺又擠滿了很多人

這些風口就像周董的歌詞一樣,“愛像一陣風,吹完它就走”。真是太無情了

最近又迎來新來的風口,準確來說是從年初持續的一直在刮,就是微信的視頻號,下半年視頻領域將可能在線上復制當年的百團大戰(拭目以待),之前行哥也分享了視頻制作的相關教程,后臺回復“pr”就可以獲取咯

如果要做視頻,其中一個蠻重要的環節就是音樂,音樂可能相當于視頻的靈魂

作為一個python愛好者,能不能用代碼自動下載音樂的想法就立馬蹦出,說干就干

qq音樂代碼案例

爬取原理很簡單

  • 首先我們先來到QQ音樂的官網:https://y.qq.com/,在搜索欄上輸入一首歌曲的名稱;

如我在上輸入最美的期待,按回車來到這個畫面

我們首先要得到這些歌曲名稱和其他一些信息,鼠標右鍵查看源代碼發現這些數據應該應用了反爬蟲,鼠標右鍵點擊檢查,點擊NetWork,然后點擊XHR,按F5刷新,然后點擊

https://c.y.qq.com/soso/fcgi-bin/client_search_cp?ct=24&qqmusic_ver=1298&new_json=1&remoteplace=txt.yqq.song&searchid=66920929169890801&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=10&w=%E6%9C%80%E7%BE%8E%E7%9A%84%E6%9C%9F%E5%BE%85&g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq.json&needNewCode=0這個網址,如下圖:

發現這里好像有我們需要的數據

image

那么這個網址要怎樣才能得到呢!其實也不難發現,就下面的那個w=不同而已,對于不同歌曲。

而這個w=后面的那個數據好像就是我輸入的歌曲名,最美的期待,只不過這里對于這個進行了編碼罷了。

我們只要這樣輸入就可以了

from?urllib?import?parsew=parse.urlencode({'w':input('輸入歌名:')})url='https://c.y.qq.com/soso/fcgi-bin/client_search_cp?ct=24&qqmusic_ver=1298&new_json=1&remoteplace=txt.yqq.song&searchid=63229658163010696&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=10&%s&g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq.json&needNewCode=0'%(w)print(url)

這樣我們就得到了這個url

這樣得到的數據是一個字符串,這個字符串類似‘{'key':{'key_1':1}}’,我們可以導入json模塊,來處理它,這樣我們得到的數據就是一個字典了。

我們點擊其中的一首歌試聽,來到這個界面

image

右擊鼠標,點擊檢查,點擊NetWork,點擊XHR,找到下面這個網址發現

image

在這里我們可以發現有這首歌曲的下載地址,發現purl下面的一個參數是上面得到的那個數據中的’mid‘,只要將兩者結合起來,就可以下載這首歌曲了。

源代碼如下

import?urllib.parse?as?parse from?urllib.request?import?urlretrieve import?requests import?json import?os import?time import?sysdef?Time_1():??#?進度條函數for?i?in?range(1,?51):sys.stdout.write('\r')sys.stdout.write('{0}%?|{1}'.format(int(i?%?51)?*?2,?int(i?%?51)?*?'■'))sys.stdout.flush()time.sleep(0.125)sys.stdout.write('\n')print(''' 公眾號:一行數據 ''') w?=?parse.urlencode({'w':?input('輸入歌名:')}) url?=?'https://c.y.qq.com/soso/fcgi-bin/client_search_cp?ct=24&qqmusic_ver=1298&new_json=1&remoteplace=txt.yqq.song&searchid=63229658163010696&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=10&%s&g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq.json&needNewCode=0'?%?(w) content?=?requests.get(url=url) str_1?=?content.text dict_1?=?json.loads(str_1) song_list?=?dict_1['data']['song']['list'] str_3?=?'''https://u.y.qq.com/cgi-bin/musicu.fcg?-=getplaysongvkey5559460738919986&g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq.json&needNewCode=0&data={"req":{"module":"CDN.SrfCdnDispatchServer","method":"GetCdnDispatch","param":{"guid":"1825194589","calltype":0,"userip":""}},"req_0":{"module":"vkey.GetVkeyServer","method":"CgiGetVkey","param":{"guid":"1825194589","songmid":["%s"],"songtype":[0],"uin":"0","loginflag":1,"platform":"20"}},"comm":{"uin":0,"format":"json","ct":24,"cv":0}}''' url_list?=?[] music_name?=?[]for?i?in?range(len(song_list)):music_name.append(song_list[i]['name']?+?'-'?+?song_list[i]['singer'][0]['name'])print('{}.{}-{}'.format(i?+?1,?song_list[i]['name'],?song_list[i]['singer'][0]['name']))url_list.append(str_3?%?(song_list[i]['mid']))id?=?int(input('請輸入你想下載的音樂序號:')) content_json?=?requests.get(url=url_list[id?-?1]) dict_2?=?json.loads(content_json.text) url_ip?=?dict_2['req']['data']['freeflowsip'][1] purl?=?dict_2['req_0']['data']['midurlinfo'][0]['purl'] downlad?=?url_ip?+?purltry:os.mkdir('./QQ音樂') except:pass finally:try:print('開始下載...')urlretrieve(url=downlad,?filename='./QQ音樂/{}.mp3'.format(music_name[id?-?1]))Time_1()print('{}.mp3下載完成!'.format(music_name[id?-?1]))except?Exception?as?e:print(e,?'對不起,你沒有該歌曲的版權!')

運行結果如下:

image

當然這個代碼有個缺點,就是不能下載付費歌曲,網上大部分下載qq音樂付費歌曲的代碼大多都只是個噱頭,畢竟騰訊每年花幾百上千萬的安全人員不是吃白飯的,所以涉及到付費歌曲下載的代碼這里先不提。

「參考:https://www.cnblogs.com/liuze-2/p/12409823.html」

不僅僅是qq音樂

技術愛好者的第一思維這個程序我能不能實現,如果效率高那還好,如果不高的我們可以借鑒其它現成方法,之前行哥也分享過使用一行代碼下載全網視頻音樂,想了解了的可以去看一下

你敢信?一行python代碼能下載全網視頻

當然還有很多不會寫代碼的讀者想在網上直接下載,但須注意不得侵犯他人版權。這里行哥也搜羅了很多免費好用的無版權的音樂來源供大家使用:

  • FreePD:用 emoji 表情來指代歌曲風格,十分形象,網站中所有的歌曲都可以單獨免費下載,你也可以選擇花費 10 美元一次性下載 800 個音樂。

  • 愛給網:中文網站愛給網包含了免費可商用的音樂素材和商用素材,選擇 CC 協議類素材庫即可下載免費可商用的音樂素材。

  • audionautix:該網站音樂可免費使用,但需標明音樂來源于該網站。

  • musopen:網站提供的音樂大部分是古典音樂,全部都可以免費下載。

  • soundcloud:soundcloud 提供了大量的免費商用音樂素材,搜索類型后,選擇可商用傳播的音樂素材即可。

  • bensound:bensound 里的音樂均可免費下載,但需注明音樂來源于該網站。

  • YouTube 免費音樂庫:YouTube 免費音樂庫中所有音樂均可免費下載。

往期推薦

對了,可以加下行哥微信好友,私聊回復「02」可以領取5T編程資料哦

無論做什么,積累才是王道

祝三連的讀者今年能再暴富一次!!!!!

總結

以上是生活随笔為你收集整理的爬虫爬取下载qq音乐,又跟新的风口相关?(附源码和资料)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。