• 欢迎访问1024小神,一个只会Python的程序猿不是一个好司机
  • 有什么想对我说的可以在留言板里给我留言哦~
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏1024小神吧

Python爬咪咕收费音乐,高音质无损音乐

爬虫实战 1024小神 1年前 (2020-11-26) 893次浏览 2个评论


使用python + requests 通过抓包 iphone的咪咕客户端

像这也收费的歌曲 一样可以抓到他flac格式和 m4a 格式 无损音质歌曲
上代码:

def migu_search(keyword, page=1):
    params = {
        'feature': '1111000000',
        'isCopyright': 1,
        'isCorrect': 1,
        'pageIndex': page,
        'pageSize': 20,
        'searchSwitch':'{"song":1,"album":0,"singer":0,"tagSong":1,"mvSong":0,"songlist":0,"bestShow":1,"lyricSong":0,"concert":0,"periodical":0,"ticket":0,"bit24":0,"verticalVideoTone":0}',
        'sort': 0,
        'text': keyword,
        'uiVersion': 'I_music_3.0.2',
    }
    response = Api.request('http://jadeite.migu.cn:7090/music_search/v2/search/searchAll', "GET", params)
    res_data = response.get('songResultData', {}).get("resultList", [])
    print(json.dumps(res_data))
    result = []
    for items in res_data:
        for item in items:
            singers = ','.join([s.get("name", "") for s in item.get('singers')])
            song = {
                'song_name': item.get('name'),
                'singers': singers
            }
            rate_list = item.get('rateFormats', [])
            urls = {}
            for x in rate_list:
                if len(x.get('url', "")) > 0:
                    urls[x.get('formatType')] = x.get('url').replace('ftp://218.200.160.122:21', 'http://freetyst.nf.migu.cn')
                else:
                    format_type = x.get('formatType')
                    if format_type == 'SQ':
                        urls['SQ-flac'] = x.get('androidUrl').replace('ftp://218.200.160.122:21', 'http://freetyst.nf.migu.cn')
                        urls['SQ-m4a'] = x.get('iosUrl').replace('ftp://218.200.160.122:21', 'http://freetyst.nf.migu.cn')
                song['urls'] = urls
            result.append(song)
    return result
 
if __name__ == '__main__':
    r = migu_search("周杰伦", 1)
    print(json.dumps(r, indent=4))

通过接口爬去出来的音频地址是ftp的哦, 通过浏览器或者下载工具是下载不下来的, 必须替换:

只要能在咪咕搜索到的音乐基本上是都能下载下来的.

最后 我通过flask 把这个包装了一下 使用docker 发布到阿里云服务器上, 这个就可以通过网页的方式更好的下载了


如有失效,请留言告知丨转载请注明原文链接:Python爬咪咕收费音乐,高音质无损音乐
点赞 (0)

您必须 登录 才能发表评论!

(2)个小伙伴在吐槽
  1. 寻梦
    学不会啊
    2021-08-01 16:56
  2. 1024yyds
    好东西
    2021-01-28 18:02