Heim >Backend-Entwicklung >Python-Tutorial >Python crawlt Musik-URLs in QQ-Musik- und Batch-Downloads

Python crawlt Musik-URLs in QQ-Musik- und Batch-Downloads

高洛峰
高洛峰Original
2017-03-24 16:23:452344Durchsuche

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

Vorwort

Es 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 musikspezifische

Zeichenfolge

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:

#Download:

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

Bildern

verwendet 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

# Laufeffekt:


Der Download beginnt, jetzt... gehen Sie in das Download-Verzeichnis und schauen Sie nach:
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. . .

Python爬取qq music中的音乐url及批量下载的方法An diesem Punkt ist die Beschreibung der Idee und Implementierung des URL-Crawler-Programms von qqmusic abgeschlossen.

#Verwendung:

Python爬取qq music中的音乐url及批量下载的方法

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn