40行代码爬取酷我音乐并进行下载

python以包出名,先导包

import urllib #用于对字符串进行准换
import requests #用于访问数据

其次分析他们之间是如何进行数据传递的
在这里插入图片描述
在这里插入图片描述
得到rid之后在拼接到另一个URL地址上
在这里插入图片描述
得到MP4的路径,然后进行提取,就可以了
详细代码如下:

import urllib   
import requests

def get_url():
    url = 'http://www.kuwo.cn/api/www/search/searchMusicBykeyWord?key={}&pn=1&rn=30&reqId=ec2404f0-47f3-11ea-b35a-df5b093dd227'.format(new)
    response = requests.get(url, headers=headers).json()
    return response

def get_url_data():
    rids = []
    jsons = get_url()
    lists = jsons['data']['list']
    for i in lists:
        rids.append((i['rid'],i['name']))
    return rids

def download_mp3():
    for i in get_url_data():
        url = 'http://www.kuwo.cn/url?format=mp3&rid={}&response=url&type=convert_url3'.format(str(i[0]))
        response = requests.get(url, headers=headers).json()
        html = response['url']
        data = requests.get(html).content
        with open('酷我音乐爬取\{}-{}.mp3'.format(test, i[1]), 'wb') as f:
            f.write(data)
            print('下载完成{}'.format(i[1]))

if __name__ == '__main__':
    test = str(input('请输入想要下载的歌手:'))
    new = urllib.parse.quote(test)
    headers = {
        'Referer': 'http://www.kuwo.cn/search/list?key={}'.format(new),
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',
        'csrf': 'NZNCXJFZLFF',
        'Host': 'www.kuwo.cn',
        'Cookie': '_ga=GA1.2.172942019.1580702894; _gid=GA1.2.771718281.1580890479; uname3=%u3081%u3044%u305F%u3093%u3066%u3044%u3053%u306A%u3093; t3kwid=235511292; userid=235511292; websid=2033651825; pic3="http://q.qlogo.cn/qqapp/100243533/BEB10B9B72AB7C5E6700E08B820BA1C5/100"; t3=qq; Hm_lvt_cdb524f42f0ce19b169a8071123a4797=1580702894,1580890479,1580891122; _gat=1; Hm_lpvt_cdb524f42f0ce19b169a8071123a4797=1580892336; kw_token=NZNCXJFZLFF'
    }

    download_mp3()

看完有用,请为我点个赞,制作不易,谢谢

发布了3 篇原创文章 · 获赞 10 · 访问量 4216

猜你喜欢

转载自blog.csdn.net/qq_44178666/article/details/104238241
今日推荐