python爬虫---VIP酷狗&酷我歌曲下载

查看 104|回复 9
作者:Allenxu520   
python爬虫---VIP酷狗&酷我歌曲下载
没有封装,会封装的大佬,可以封装exe
[Python] 纯文本查看 复制代码def KuGou(singer, num):
    key = urllib.parse.quote(singer)
    url = f'https://songsearch.kugou.com/song_search_v2?keyword={key}&page={str(num)}'
    try:
        res = k_reqeust(url)
        res_items = res.json().get('data')
        page_size = res_items['pagesize']
        total = res_items['total']
        print(singer + f'相关歌曲共{total}首,共{page_size}页')
        canshu()
        num_key = input('请根据需求输入相关下载页面 a or b:')
        page_num = input('请输入下载的页码:')
        if int(page_num) > int(page_size):
            print('页面超过下限,请重新开始')
            exit()
        if not page_num.isdigit():
            print('让你输入数字,你输入啥玩意?')
            exit()
        if num_key == 'a':
            a_url = f'https://songsearch.kugou.com/song_search_v2?keyword={key}&page={str(page_num)}'
            res1 = k_reqeust(a_url)
            items = res1.json().get('data')['lists']
            k_dowaload(items)
        elif num_key == 'b':
            for page in range(1, int(page_num) + 1):
                b_url = f'https://songsearch.kugou.com/song_search_v2?keyword={key}&page={page}'
                res2 = k_reqeust(b_url)
                items = res2.json().get('data')['lists']
                k_dowaload(items)
        else:
            print('输入错误')
            exit()
    except Exception as e:
        print(e)
        exit()

爬虫, 歌曲下载

wkfy   

[Python] 纯文本查看 复制代码def k_dowaload(items):
    '''
    父级地址 解析歌曲
    https://wwwapi.kugou.com/yy/inde ... amp;album_id=555030
    https://wwwapi.kugou.com/yy/inde ... amp;album_id=555030
    music地址
    '''
    if isinstance(items, list):
        for it in items:
            '''
            FileHash
            AlbumID  bum_id
            '''
            hash = it.get('FileHash')
            a_id = it.get('AlbumID')
            '''
            https://wwwapi.kugou.com/yy/inde ... id=dfid&mid=mid
   
            https://wwwapi.kugou.com/yy/inde ... id=dfid&mid=mid
            '''
            # https://wwwapi.kugou.com/yy/inde ... id=mid&platid=4
            music_url = ''
            if a_id:
                music_url = f'https://wwwapi.kugou.com/yy/index.php?r=play/getdata&callback=jQuery&hash={hash}&dfid=dfid&mid=mid&platid=4&album_id={a_id}'
            else:
                music_url = f'https://wwwapi.kugou.com/yy/index.php?r=play/getdata&callback=jQuery&hash={hash}&dfid=dfid&mid=mid'
            m_res = requests.get(music_url, headers={
                'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36',
                'cookie': 'kg_mid=09fbe19da8563f6fd444a3657c4c71f6; kg_dfid=0hoWuV15LpJc3XeE0j46EoR1; Hm_lvt_aedee6983d4cfc62f509129360d6bb3d=1633592836'
            })
            content = re.search('jQuery\((.*?)\);', m_res.text).group(1)
            try:
                con = json.loads(content)
                if con.get('status') == 1:
                    item = con.get('data')
                    m_url = item.get('play_url')
                    title = item.get('song_name')
                    music = requests.get(m_url)
                    if os.path.exists('kugou') is False:
                        os.mkdir('kugou')
                    path = './kugou/' + title + '.mp3'
                    with open(path, "wb") as f:
                        f.write(music.content)
                        print("正在下载", title)
            except Exception as e:
                print(e, m_res.url, '有毒')
                continue
    else:
        exit()def KuGou(singer, num):
    key = urllib.parse.quote(singer)
    url = f'https://songsearch.kugou.com/song_search_v2?keyword={key}&page={str(num)}'
    try:
        res = k_reqeust(url)
        res_items = res.json().get('data')
        page_size = res_items['pagesize']
        total = res_items['total']
        print(singer + f'相关歌曲共{total}首,共{page_size}页')
        canshu()
        num_key = input('请根据需求输入相关下载页面 a or b:')
        page_num = input('请输入下载的页码:')
        if int(page_num) > int(page_size):
            print('页面超过下限,请重新开始')
            exit()
        if not page_num.isdigit():
            print('让你输入数字,你输入啥玩意?')
            exit()
        if num_key == 'a':
            a_url = f'https://songsearch.kugou.com/song_search_v2?keyword={key}&page={str(page_num)}'
            res1 = k_reqeust(a_url)
            items = res1.json().get('data')['lists']
            k_dowaload(items)
        elif num_key == 'b':
            for page in range(1, int(page_num) + 1):
                b_url = f'https://songsearch.kugou.com/song_search_v2?keyword={key}&page={page}'
                res2 = k_reqeust(b_url)
                items = res2.json().get('data')['lists']
                k_dowaload(items)
        else:
            print('输入错误')
            exit()
    except Exception as e:
        print(e)
        exit()
pan18842885961   

推荐使用以下方式插入代码
【公告】发帖代码插入以及添加链接教程(有福利)
https://www.52pojie.cn/thread-713042-1-1.html
(出处: 吾爱破解论坛)
52pj002   

这个貌似很好用的杨紫
poqt   

都是Python大神
TheHomelander   

学习了,谢谢楼主大大!
mengxiangdjz   

大家学习了,支持吾爱
lixuguangabc   

正好需要一个类似的,谢谢楼主
echoaku   

楼主威武,学习了。。。。。。。。。。。
52pj002   

666,各位大佬尽显神通
您需要登录后才可以回帖 登录 | 立即注册

返回顶部