赞
踩
import re import time import json import requests class Migu: def __init__(self): self.url = "http://music.migu.cn/v3/search?keyword={}" self.parse_url = "http://music.migu.cn/v3/api/music/audioPlayer/getPlayInfo?copyrightId={}" self.headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36"} self.dumps = {'copyrightId': '64046301000'} self.count = 0 def req(self, url): # 获取歌曲id 和 歌曲名称 re_response = requests.get(url, headers=self.headers) re_html = re_response.content.decode('utf8') re_songid = re.compile('<a href="/v3/music/song/(\d+)" title="(.*?)" target="_blank">.*?</a>', re.S).findall(re_html) print('共获取以下歌曲信息:', re_songid) return re_songid def parse(self, songid): url = self.parse_url.format(songid) self.dumps['copyrightId'] = songid response = requests.get(url, data=json.dumps(self.dumps), headers=self.headers) text = json.loads(response.content.decode()) txt1 = text['walkmanInfo'] txt = txt1['playUrl'] # print(txt) return txt def download(self, txt, song_name): self.count = self.count + 1 with open('%s_%s.mp3' % (song_name, txt), 'wb') as f: # 下载mp3文件 response = requests.get(url=txt) f.write(response.content) print("下载:%s_%s" % (song_name, txt)) time.sleep(1) def run(self): print('请输入要下载的歌曲:') text = input() print('你输入的歌曲名是:"%s"' % text) print('已发送请求!') # print(text) url = self.url.format(text) re_songid = self.req(url) for i in re_songid: print('暂停3秒~~~') time.sleep(3) txt = self.parse(i[0]) print('已获得下载连接!') print('暂停3秒~~~') time.sleep(3) self.download(txt, i[1]) if __name__ == '__main__': t1 = Migu() t1.run()
以上是通过爬虫咪咕音乐
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。