Heim >Backend-Entwicklung >Python-Tutorial >Python crawlt Musik-URLs in QQ-Musik- und Batch-Downloads
In diesem Artikel wird hauptsächlich die Verwendung von Python zum Crawlen von qq-Musik vorgestellt. Der Artikel bietet a Detaillierte Einführung und Beispielcode für Musik-URLs und zugehörige Informationen zum Batch-Download. Freunde, die sie benötigen, können einen Blick darauf werfen
VorwortEs gibt immer noch viel Musik auf qq music. Manchmal möchte ich gute Musik herunterladen, aber jedes Mal, wenn ich sie auf der Webseite herunterlade, muss ich mich anmelden und so weiter , hier kommt der qqmusic-Crawler. Zumindest denke ich, dass der Kern des for-Loop
-Crawlers darin besteht, die URL des zu crawlenden Elements zu finden (lachen Sie mich nicht aus, wenn ich falsch liege) Die Implementierung ist wie folgt#URL finden:
Diese URL ist nicht so einfach zu finden Es macht mich sehr müde, aus so vielen Daten die nützlichen Daten herauszusuchen und sie schließlich zu echten Musikstücken zusammenzustellen.
#. 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.qq Musik .qq.com/[Dateiname] ?vkey=[vkey] (wobei vkey die musikspezifischeZeichenfolge
ersetzt) requests(url1)
Get the Wert jeder Musik aus der Suchliste songmid und mid (laut Beobachtung des Autors sind diese beiden Werte für jede Musik einzigartig, um den vollständigen spezifischen Wert von url2 zu erhalten). Holen Sie sich den vkey-Wert jeder Musik in den Suchergebnissen. Nach der Beobachtung des Autors lautet der Dateiname C400songmid.m4a. Anschließend wird der spezifische Wert von URL3 ermittelt, und URL3 ist die tatsächliche URL der Musik genug, sodass jedes Mal maximal 20 Musik-URLs zurückgegeben werden. Mit der URL kann die Musik von Tencent in vollen Zügen genossen werden.
#Code
requests(url2)
Hier ist der SRCS-Codeblock:
Mit srcs ist das Herunterladen kein Problem. Natürlich können Sie die Quelle auch in den Browser kopieren, um den Sänger und den Songtitel herunterzuladen. Sie können auch großes Python zum stapelweisen Herunterladen verwenden. Dies ist nichts weiter als eine Schleife, ähnlich der Methode, die wir zum Herunterladen von Sogou
Bildernverwendet haben: (Py-Version des Autors: Python3.3.3)
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')
Die beiden oben genannten Codeteile sind in derselben Py-Datei geschrieben, und Sie können die dem Schlüsselwort entsprechende Musik herunterladen, indem Sie sie ausführen
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 !')music has wurde erfolgreich heruntergeladen. . .
An diesem Punkt ist die Beschreibung der Idee und Implementierung des URL-Crawler-Programms von qqmusic abgeschlossen.
#Verwendung: MusicPlayer-Studenten, die Muscheln hergestellt haben, sollten es verwenden können. Tatsächlich bestand die ursprüngliche Absicht dabei darin, meinen HTML-basierten Musikplayer zu bedienen. Aber jetzt stecke ich im Link von js fest, der py aufruft. Wenn Sie es verstehen, lassen Sie es mich bitte wissen.Das obige ist der detaillierte Inhalt vonPython crawlt Musik-URLs in QQ-Musik- und Batch-Downloads. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!