【20181014】gevent 30行代码实现网易云音乐歌曲下载

python对gevent感兴趣的朋友可以看看,有兴趣的同学可以自动爬歌。

这个下载是半手动的(需要自己输音乐的ID并且提供命名),因为办了QQ绿钻会员,不想再办网易的,纯粹自己用着方便

比较局限的是只能下载本身可以听的歌,会员才能听的文件下载不了。(网易现在歌曲即使可以听,下载也是需要会员的,这个方法可以避开因此而充值会员)

音乐ID,复制右键歌曲,复制网页链接即可获得:)

比如这个:http://music.163.com/#/m/song?id=29431062

就是一串数字,然后运行文件(在终端或者任何可以运行.py文件的环境都可以),把数字输入,再输入文件名即可

import gevent
import urllib.request
from gevent import monkey
monkey.patch_all()


def download_img(img_url, img_name):
    try:
        img = urllib.request.urlopen(img_url)
        with open(img_name, 'wb') as file:
            while True:
                img_data = img.read(1024)
                if img_data:
                    file.write(img_data)
                else:
                    break
    except Exception as e:
        print('下载失败', e)
    else:
        print('下载成功', img_name)


if __name__ == '__main__':
    id = input('请输入音乐ID: ')
    img_url1 = 'http://music.163.com/song/media/outer/url?id='+ id +'.mp3'
    name = input('请输入文件名字:')
    # 没搞服务器,不能查歌后自动抓ID匹配,小工具,凑合用
    g1 = gevent.spawn(download_img, img_url1, name+'.mp3')

    g1.join()

PS:只能爬大众资源,网易做了版权保护的格式搞不来,改天研究一下转码方式

猜你喜欢

转载自blog.csdn.net/weixin_42767581/article/details/83050317