This article mainly introduces how to use Python to crawl qq music The article provides a detailed introduction and sample code for music URLs and related information on batch downloading. I believe it has certain reference value for everyone. Friends who need it can take a look below.
Preface
There is still a lot of music on qq music. Sometimes I want to download good music, but every time I download it on the web page, I have to log in annoyingly. So, here comes the qqmusic crawler. At least I think the core of the for loop crawler is to find the URL of the element to be crawled (don’t laugh at me if I’m wrong)
The implementation is as follows
#Find the url:
This url is not as easy to find as other websites. It makes me very tired. The key is that there is a lot of data. I picked out the useful data from so much data and finally combined it into the real music. Here are some intermediate URLs I compiled yesterday:
#. 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] (where vkey replaces the string unique to the music)
requests(url1)
is searched by The list obtains the songmid and mid of each music (according to the author's observation, these two values are unique to each music). With these two values, the complete specific value of url2 is obtained.
#requests(url2)
Get the vkey value of each music in the search results. After the author’s observation, the filename is C400songmid.m4a, and then the specific value of url3 is determined. And url3 is the real url of the music. Since the author did not study the other parameters of this url thoroughly enough, a maximum of 20 music urls are returned each time. With the url, you can enjoy Tencent's music to your heart's content.
Here is the code block of 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')#Download:
With srcs, downloading is naturally no problem. Of course, you can also copy the src to the browser to download the singer and song title. You can also use large Python to download in batches, which is nothing more than a loop, similar to the method we used to download sogou
pictures: (author's py version: python3.3.3)
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 !')
The above two pieces of code are written in the same py file and can be run to download the music corresponding to the keyword
#Running effect:
Download starts , below... Go to the download directory and take a look:
music has been successfully downloaded. . .
At this point, the description of the idea and implementation of qqmusic’s url crawler program is complete.
#Usage:musicplayer Students who have made shells should be able to use it. In fact, the original intention of doing this is to serve my HTML-based musicplayer. But now I am stuck in the link of js calling py. I will look for it again. If you understand, please let me know. Thank you very much!
The above is the detailed content of Python crawls music URLs in qq music and batch downloads. For more information, please follow other related articles on the PHP Chinese website!

The article discusses Python's new "match" statement introduced in version 3.10, which serves as an equivalent to switch statements in other languages. It enhances code readability and offers performance benefits over traditional if-elif-el

Exception Groups in Python 3.11 allow handling multiple exceptions simultaneously, improving error management in concurrent scenarios and complex operations.

Function annotations in Python add metadata to functions for type checking, documentation, and IDE support. They enhance code readability, maintenance, and are crucial in API development, data science, and library creation.

The article discusses unit tests in Python, their benefits, and how to write them effectively. It highlights tools like unittest and pytest for testing.

Article discusses access specifiers in Python, which use naming conventions to indicate visibility of class members, rather than strict enforcement.

Article discusses Python's \_\_init\_\_() method and self's role in initializing object attributes. Other class methods and inheritance's impact on \_\_init\_\_() are also covered.

The article discusses the differences between @classmethod, @staticmethod, and instance methods in Python, detailing their properties, use cases, and benefits. It explains how to choose the right method type based on the required functionality and da

InPython,youappendelementstoalistusingtheappend()method.1)Useappend()forsingleelements:my_list.append(4).2)Useextend()or =formultipleelements:my_list.extend(another_list)ormy_list =[4,5,6].3)Useinsert()forspecificpositions:my_list.insert(1,5).Beaware


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Dreamweaver CS6
Visual web development tools

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

Zend Studio 13.0.1
Powerful PHP integrated development environment
