この記事では、主に Python を使用して qq music の音楽 URL をクロールし、一括ダウンロードを実現する方法を紹介します。詳細な紹介とサンプル コードが記載されています。誰にとっても一定の参考になると思います。必要な友達は以下を参照してください。
前書き
QQ ミュージックにはまだたくさんの音楽があります。良い音楽をダウンロードしたいのですが、ダウンロードするたびにログインするのは面倒です。そこで、私は qqmusic クローラーを思いつきました。少なくとも、for ループ クローラーの中心となるのは、それを探し始めることです。クロールされる要素の URL (間違っていたら笑わないでください)
実装は次のとおりです
#Find URL:
この URL は見つけるのが簡単ではありません重要なのは、大量のデータから有用なデータを選択し、最終的にそれを実際の音楽に結合したものです:
#url1 : https:// c.y.qq.com/soso/fcgi-bin/client_search_cp?&lossless=0&flag_qc=0&p=1&n=20&w=雨die
#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 の場合)音楽固有の String) を置き換えます
requests(url1)
requests(url1)
由搜索列表得到每个音乐的的songmid和mid(通过笔者观察,这两个值是每一个music特有的)。有了这两个值。下面就得到了完整的url2的具体值。
requests(url2)
requests(url2)
検索結果内の各音楽の vkey 値を取得します。著者が観察した結果、ファイル名は C400songmid.m4a になります。次に、url3 の特定の値が決定され、url3 は音楽の実際の URL になります。著者はこの URL の他のパラメータを十分に調べていないため、最大 20 になります。音楽の URL が毎回返されるので、Tencent の音楽を心ゆくまでお楽しみいただけます。
#Codeここに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 をブラウザにコピーして、歌手と曲のタイトルをダウンロードすることもできます。また、大規模な Python を使用してバッチでダウンロードすることもできます。これは、sogou
写真
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 !')
上記 2 つコードの一部は同じ py ファイルに記述されています。実行してキーワードに対応する音楽をダウンロードします
# 実行中の効果:以下のようにダウンロードが開始されます... ダウンロード ディレクトリに移動して確認してください:
音楽が正常にダウンロードされました。 。 。 この時点で、qqmusic の URL クローラー プログラムのアイデアと実装の説明が完了しました。
#使用法: 🎜🎜🎜MusicPlayer でシェルを作成した生徒は、それを使用できるはずです。実際、これを行う本来の目的は、HTML ベースの音楽プレーヤーにサービスを提供することです。しかし、今私はpyを呼び出すjsのリンクに引っかかっています、私はそれを理解するならば、私に知らせてください。 🎜以上がPythonはqq musicの音楽URLをクロールしてバッチダウンロードしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。