日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python爬虫qq付费音乐_Python 应用爬虫下载QQ音乐

發布時間:2023/12/20 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python爬虫qq付费音乐_Python 应用爬虫下载QQ音乐 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python應用爬蟲下載QQ音樂

目錄:

1.簡介怎樣實現下載QQ音樂的過程;

2.代碼

1.下載QQ音樂的過程

首先我們先來到QQ音樂的官網: https://y.qq.com/,在搜索欄上輸入一首歌曲的名稱;

如我在上輸入最美的期待,按回車來到這個畫面

我們首先要得到這些歌曲名稱和其他一些信息

鼠標右鍵查看源代碼發現這些數據應該應用了反爬蟲

鼠標右鍵點擊檢查,點擊NetWork,然后點擊XHR,按F5刷新,然后點擊 https://c.y.qq.com/soso/fcgi-bin/client_search_cp?ct=24&qqmusic_ver=1298&new_json=1&remoteplace=txt.yqq.song&searchid=66920929169890801&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=10&w=%E6%9C%80%E7%BE%8E%E7%9A%84%E6%9C%9F%E5%BE%85&g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq.json&needNewCode=0這個網址,如下圖:

發現這里好像有我們需要的數據

那么這個網址要怎樣才能得到呢!其實也不難發現,就下面的那個w=不同而已,對于不同歌曲。

而這個w=后面的那個數據好像就是我輸入的歌曲名,最美的期待,只不過這里對于這個進行了編碼罷了。

我們只要這樣輸入就可以了

from urllib import parse

w=parse.urlencode({'w':input('輸入歌名:')})

url='https://c.y.qq.com/soso/fcgi-bin/client_search_cp?ct=24&qqmusic_ver=1298&new_json=1&remoteplace=txt.yqq.song&searchid=63229658163010696&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=10&%s&g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq.json&needNewCode=0'%(w)

print(url)

這樣我們就得到了這個url

這樣得到的數據是一個字符串,這個字符串類似‘{'key':{'key_1':1}}’,我們可以導入json模塊,來處理它,這樣我們得到的數據就是一個字典了。

我們點擊其中的一首歌試聽,來到這個界面

右擊鼠標,點擊檢查,點擊NetWork,點擊XHR,找到下面這個網址發現

在這里我們可以發現有這首歌曲的下載地址,發現purl下面的一個參數是上面得到的那個數據中的’mid‘,只要將兩者結合起來,就可以下載這首歌曲了。

代碼如下:

import urllib.parse as parse

from urllib.request import urlretrieve

import requests

import json

import os

import time

import sys

def Time_1(): # 進度條函數

for i in range(1,51):

sys.stdout.write('\r')

sys.stdout.write('{0}% |{1}'.format(int(i%51)*2,int(i%51)*'■'))

sys.stdout.flush()

time.sleep(0.125)

sys.stdout.write('\n')

print('''

聲明:本小程序僅供娛樂和學習,切莫用于商業用途,一經發現,概不負責!

''')

w=parse.urlencode({'w':input('輸入歌名:')})

url='https://c.y.qq.com/soso/fcgi-bin/client_search_cp?ct=24&qqmusic_ver=1298&new_json=1&remoteplace=txt.yqq.song&searchid=63229658163010696&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=10&%s&g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq.json&needNewCode=0'%(w)

content=requests.get(url=url)

str_1=content.text

dict_1=json.loads(str_1)

song_list=dict_1['data']['song']['list']

str_3='''https://u.y.qq.com/cgi-bin/musicu.fcg?-=getplaysongvkey5559460738919986&g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq.json&needNewCode=0&data={"req":{"module":"CDN.SrfCdnDispatchServer","method":"GetCdnDispatch","param":{"guid":"1825194589","calltype":0,"userip":""}},"req_0":{"module":"vkey.GetVkeyServer","method":"CgiGetVkey","param":{"guid":"1825194589","songmid":["%s"],"songtype":[0],"uin":"0","loginflag":1,"platform":"20"}},"comm":{"uin":0,"format":"json","ct":24,"cv":0}}'''

url_list=[]

music_name=[]

for i in range(len(song_list)):

music_name.append(song_list[i]['name']+'-'+song_list[i]['singer'][0]['name'])

print('{}.{}-{}'.format(i+1,song_list[i]['name'],song_list[i]['singer'][0]['name']))

url_list.append(str_3 % (song_list[i]['mid']))

id=int(input('請輸入你想下載的音樂序號:'))

content_json=requests.get(url=url_list[id-1])

dict_2=json.loads(content_json.text)

url_ip=dict_2['req']['data']['freeflowsip'][1]

purl=dict_2['req_0']['data']['midurlinfo'][0]['purl']

downlad=url_ip+purl

try:

os.mkdir('./QQ音樂')

except:

pass

finally:

try:

print('開始下載...')

urlretrieve(url=downlad,filename='./QQ音樂/{}.mp3'.format(music_name[id-1]))

Time_1()

print('{}.mp3下載完成!'.format(music_name[id-1]))

except Exception as e:

print(e,'對不起,你沒有該歌曲的版權!')

運行結果:

下載完成后,會在同一個文件下面多了一個QQ音樂的文件夾,所下載的歌曲就在這里面。

總結

以上是生活随笔為你收集整理的python爬虫qq付费音乐_Python 应用爬虫下载QQ音乐的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。