search
HomeBackend DevelopmentPython TutorialPython crawls music URLs in qq music and batch downloads

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.

#Code

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:

Python爬取qq music中的音乐url及批量下载的方法Download starts , below... Go to the download directory and take a look:

Python爬取qq music中的音乐url及批量下载的方法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!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
What is Python Switch Statement?What is Python Switch Statement?Apr 30, 2025 pm 02:08 PM

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

What are Exception Groups in Python?What are Exception Groups in Python?Apr 30, 2025 pm 02:07 PM

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

What are Function Annotations in Python?What are Function Annotations in Python?Apr 30, 2025 pm 02:06 PM

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.

What are unit tests in Python?What are unit tests in Python?Apr 30, 2025 pm 02:05 PM

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

What are Access Specifiers in Python?What are Access Specifiers in Python?Apr 30, 2025 pm 02:03 PM

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

What is __init__() in Python and how does self play a role in it?What is __init__() in Python and how does self play a role in it?Apr 30, 2025 pm 02:02 PM

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.

What is the difference between @classmethod, @staticmethod and instance methods in Python?What is the difference between @classmethod, @staticmethod and instance methods in Python?Apr 30, 2025 pm 02:01 PM

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

How do you append elements to a Python array?How do you append elements to a Python array?Apr 30, 2025 am 12:19 AM

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

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Tools

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment