Maison >développement back-end >Tutoriel Python >Python explore les URL de musique dans la musique QQ et les téléchargements par lots

Python explore les URL de musique dans la musique QQ et les téléchargements par lots

高洛峰
高洛峰original
2017-03-24 16:23:452379parcourir

Cet article présente principalement l'utilisation de Python pour explorer la musique qq L'article fournit un introduction détaillée et exemple de code pour les URL de musique et informations connexes sur le téléchargement par lots. Je pense qu'il a une certaine valeur de référence pour tous les amis qui en ont besoin peuvent jeter un œil ci-dessous. >

Il y a encore beaucoup de musique sur qq music Parfois, je veux télécharger de la bonne musique, mais chaque fois que je la télécharge sur la page Web, je dois me connecter et ainsi de suite. , voici le robot d'exploration qqmusic. Au moins, je pense que le cœur du robot d'exploration for loop est de trouver l'URL de l'élément à explorer (ne vous moquez pas de moi si je me trompe)

La mise en œuvre est la suivante

#Trouver l'url : Cette url n'est pas aussi simple à trouver comme d'autres sites Web. Cela me fatigue beaucoup. La clé est qu'il y a beaucoup de données, j'ai sélectionné les données utiles parmi tant de données et je les ai finalement combinées dans la vraie musique. Voici quelques URL intermédiaires que j'ai compilées hier :

#.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.qqmus ic .qq.com/[filename] ?vkey=[vkey] (où vkey remplace la chaîne

spécifique à la musique

)

Obtenez le valeur de chaque musique de la liste de recherche songmid et mid (d'après l'observation de l'auteur, ces deux valeurs sont uniques à chaque musique, on obtient la valeur spécifique complète de l'url2

). Obtenez la valeur vkey de chaque musique dans les résultats de la recherche. Après l'observation de l'auteur, le nom de fichier est C400songmid.m4a. Ensuite, la valeur spécifique de l'url3 est déterminée, et l'url3 est la véritable url de la musique. C'est suffisant, donc un maximum de 20 URL de musique sont renvoyées à chaque fois. Avec l'URL, la musique de Tencent peut être pleinement appréciée. requests(url1)

#Code

Voici le bloc de code srcs : requests(url2)

#Download :

Avec srcs, le téléchargement ne pose aucun problème. Bien sûr, vous pouvez également copier le src dans le navigateur pour télécharger le titre du chanteur et de la chanson. Vous pouvez également utiliser un gros Python pour télécharger par lots, ce qui n'est rien de plus qu'une boucle, similaire à la méthode que nous avons utilisée pour télécharger sogouimages

 : (version py de l'auteur : 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')

Les deux morceaux de code ci-dessus sont écrits dans le même fichier py, et vous pouvez télécharger la musique correspondant au mot-clé en l'exécutant

# Effet d'exécution :


Le téléchargement commence, maintenant... allez dans le répertoire de téléchargement et jetez un oeil :

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 !')

la musique a été téléchargé avec succès. . .

À ce stade, la description de l’idée et de la mise en œuvre du programme d’exploration d’URL de qqmusic est terminée. Python爬取qq music中的音乐url及批量下载的方法

#Usage :

Python爬取qq music中的音乐url及批量下载的方法Les étudiants de MusicPlayer qui ont fabriqué des coques devraient pouvoir l'utiliser. En fait, l'intention initiale de cette opération est de servir mon lecteur de musique HTML. Mais maintenant, je suis coincé dans le lien de js appelant py, je vais le chercher à nouveau. Si vous comprenez, faites-le-moi savoir. Merci beaucoup !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn