吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 42150|回复: 124
收起左侧

[Python 原创] 【Python】某易云音乐歌曲批量下载,免VIP【支持歌单】

    [复制链接]
ccph 发表于 2018-7-21 11:25
本帖最后由 wushaominkk 于 2019-6-6 21:10 编辑

2018年7月21日 更新(表示可以用)
更新歌单获取歌曲和下载。
使用requestsBeautifulSouplxml
-----------------------------------------------------------
github地址(GUI):https://github.com/CcphAmy/NetEaseCloudMusic-nonmembership-list-download
github地址(无界面):https://github.com/CcphAmy/pythonDemo

支持歌单,支持排名榜,有人评论办法失效,已测试,未失效。
获取歌单代码
[Python] 纯文本查看 复制代码
        def getMusicData(self,id):

                user_agent = 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36'
                headers    = {'User-Agent':user_agent}
                webData    = requests.get('https://music.163.com/playlist?id=' + id,headers=headers).text
                soup       = BeautifulSoup(webData,'lxml')

                find_list  = soup.find('ul',class_="f-hide").find_all('a')
                tempArr = []
                for a in find_list:
                        music_id  = a['href'].replace('/song?id=','')
                        music_name = a.text
                        tempArr.append({'id':music_id,'name':music_name})
                return tempArr


文件总代码
[Python] 纯文本查看 复制代码
import urllib.request
import requests
import os

from bs4 import BeautifulSoup

class HttpSvc():
        """docstring for HttpSvc"""

        def __init__(self):
                super(HttpSvc, self).__init__()
                if not os.path.exists("d:/music"):
                        os.mkdir('d:/music')
                
        def get(self,values):

                print(len(values))

                downNum    = 0

                for x in values:
                        if not os.path.exists("d:/music/" + x['name'] + '.mp3'):
                                print('***** ' + x['name'] + '.mp3 ***** Downloading...')
                                url = 'http://music.163.com/song/media/outer/url?id=' + x['id'] + '.mp3'
                                try:
                                        urllib.request.urlretrieve(url,'d:/music/' + x['name'].replace('/','') + '.mp3')
                                        downNum = downNum + 1
                                except:
                                        x = x - 1
                                        print('Download wrong~')
                print('Download complete ' + str(downNum) + ' files !')
                pass

        def getMusicData(self,url):

                user_agent = 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36'
                headers    = {'User-Agent':user_agent}
                webData    = requests.get(url,headers=headers).text
                soup       = BeautifulSoup(webData,'lxml')

                find_list  = soup.find('ul',class_="f-hide").find_all('a')
                tempArr = []
                for a in find_list:
                        music_id  = a['href'].replace('/song?id=','')
                        music_name = a.text
                        tempArr.append({'id':music_id,'name':music_name})
                return tempArr

if __name__ == '__main__':

        newHttp = HttpSvc()
        musicData = newHttp.getMusicData('https://music.163.com/playlist?id=2074950566') #获取歌单歌曲id [url=https://music.163.com/playlist?id=2074950566]https://music.163.com/playlist?id=2074950566[/url]
        print(musicData)
        print(newHttp.get(musicData))



微信截图_20180721174040.png


2018年7月21日(歌单请用上面的,下面的为个人指定的歌曲id)
暑假放假,发现车里的音乐没更新,想下载音乐却下载不来。

[Python] 纯文本查看 复制代码
import urllib
import urllib.parse
import urllib.request

import os

class HttpSvc():
        """docstring for HttpSvc"""

        def __init__(self):
                super(HttpSvc, self).__init__()
                if not os.path.exists("d:/music"):
                        os.mkdir('d:/music')
                
        def get(self,values):

                print(len(values))

                user_agent = 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36'
                headers    = {'User-Agent':user_agent}
                downNum    = 0

                for x in values:

                        print('***** ' + x['name'] + '.mp3 ***** Downloading...')
                        url = 'http://music.163.com/song/media/outer/url?id=' + x['id'] + '.mp3'
                        try:
                                urllib.request.urlretrieve(url,'d:/music/' + x['name'] + '.mp3')
                                downNum = downNum + 1
                        except:
                                x = x - 1
                                print('Download wrong~')

                print('Download complete ' + str(downNum) + 'files !')
                pass

        def write(self,fileName):
                pass

print("下载歌单所有歌曲")

# 已爬歌单

getMusicData = [
        {'id':'440208476','name':'That Girl-Olly Murs'},
        {'id':'29966565','name':'Love Me Like You Do(电影《五十度灰》主题曲)-Ellie Goulding'},
        {'id':'32019002','name':'Beautiful Now-Zedd Jon Bellion'},
        {'id':'812400','name':'PLANET-ラムジ'},
        {'id':'524290990','name':'What Lovers Do-Maroon 5 SZA'},
        {'id':'809268','name':'sweets parade-花澤香菜'},
        {'id':'525278524','name':'无问(电影《无问西东》宣传曲)-毛不易'},
        {'id':'526464293','name':'空空如也-任然'},
        {'id':'32192436','name':'绅士-薛之谦'},
        {'id':'287617','name':'逃亡-孙燕姿'},
        {'id':'387717','name':'海阔天空-信乐团'},
        {'id':'27867449','name':'倾城-陈奕迅'},
        {'id':'298489','name':'座右铭-吴雨霏'},
        {'id':'31654343','name':'不将就(电影《何以笙箫默》片尾主题曲)-李荣浩'},
        {'id':'287749','name':'天黑黑-孙燕姿'},
        {'id':'191528','name':'够钟-周柏豪'},
        {'id':'25788001','name':'其实都没有-杨宗纬'},
        {'id':'28314060','name':'听海-张惠妹'},
        {'id':'287063','name':'我怀念的-孙燕姿'},
        {'id':'190270','name':'饿狼传说-张学友'},
        {'id':'529747143','name':'贪图-蔡健雅'},
        {'id':'31445554','name':'七月上-Jam'},
        {'id':'65766','name':'富士山下-陈奕迅'},
        {'id':'110452','name':'爱转角(电视剧《转角遇到爱》片尾曲)-罗志祥'},
        {'id':'65198','name':'命硬-侧田'},
        {'id':'256468','name':'至少还有你-林忆莲'},
        {'id':'453062799','name':'你知道我在等你吗(Cover 白百合)-刘半仙'},
        {'id':'354593','name':'我们的爱-F.I.R.'},
        {'id':'29414037','name':'走马-陈粒'},
        {'id':'287248','name':'第一天-孙燕姿'},
        {'id':'176999','name':'情非得已(电视剧《流星花园》主题曲)-庾澄庆'},
        {'id':'307109','name':'我要的世界-萧亚轩'},
        {'id':'30431375','name':'历历万乡-陈粒'},
        {'id':'286980','name':'雨天-孙燕姿'},
        {'id':'29713754','name':'匆匆那年(Fleet of Time)-王菲'},
        {'id':'108914','name':'江南-林俊杰'},
        {'id':'191232','name':'遥远的她-张学友'},
        {'id':'280120','name':'梦一场(电视剧《新闻小姐》插曲)-那英'},
        {'id':'525112245','name':'This Is Me (From The Greatest Showman)-Kesha'},
        {'id':'4259981','name':'Sorry-Queensberry'},
        {'id':'32341765','name':'Smile-Dami Im'},
        {'id':'25657282','name':'Marry You-Bruno Mars'},
        {'id':'5253801','name':'Free Loop-Daniel Powter'},
        {'id':'16431842','name':'Innocence-Avril Lavigne'},
        {'id':'21038756','name':'Just Dance-Lady Gaga RedOne Colby O Donis'},
        {'id':'485960228','name':'岁月神偷(电影《逆时营救》主题曲)-周笔畅'},
        {'id':'523251118','name':'说散就散(电影《前任3:再见前任》主题曲)-袁娅维'}
]

newHttp = HttpSvc()

print(newHttp.get(getMusicData))

微信图片_20180721112217.png

免费评分

参与人数 46吾爱币 +40 热心值 +40 收起 理由
Tan三分 + 1 + 1 谢谢@Thanks!
弑神、残血 + 1 win10测试不能正常使用 (歌单下载功能)
王仙森 + 1 + 1 谢谢@Thanks!
mustard666 + 1 + 1 热心回复!
Loser2019 + 1 + 1 用心讨论,共获提升!
jnez112358 + 1 + 1 谢谢@Thanks!
vyjae + 1 + 1 我很赞同!
qwetrz007sh + 1 6p请大家不要传播
零点舞 + 1 + 1 谢谢@Thanks!
DeSireFire + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
lxy0xy + 1 + 1 谢谢@Thanks!
我说life + 1 + 1 热心回复!
HellMon + 1 + 1 我很赞同!
耗子扛刀 + 1 谢谢@Thanks!
演绎凄凉 + 1 + 1 有没有编译好的,可以直接使用
菟丝子 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
xx69as + 1 + 1 我很赞同!
sddh123456 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
qq350595863 + 1 + 1 感谢分享,比特率还能再高点么o(* ̄︶ ̄*)o
admh + 1 谢谢@Thanks!
IQ贰佰伍 + 1 + 1 我很赞同!
巴普洛夫的猫 + 1 + 1 我很赞同!
郝哥哥 + 1 + 1 我很赞同
sailorTT + 1 + 1 用心讨论,共获提升!
小宏iam + 1 + 1 谢谢@Thanks!
huanboy + 1 + 1 鼓励转贴优秀软件安全工具和文档!
Yelly + 1 + 1 支持楼主,加油!用心讨论,共获提升!
www1678 + 1 + 1 怎么用的
bsxl + 1 + 1 谢谢@Thanks!
chencfgs + 1 谢谢@Thanks!
小教主 + 1 谢谢@Thanks!
xlose13720 + 1 + 1 貌似方法失效了,官方发现了
NortonLuce + 1 + 1 谢谢@Thanks!
MarinYY + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
CodeLover + 1 鼓励转贴优秀软件安全工具和文档!
17826616063 + 1 + 1 热心回复!
oldcatYZ + 1 我很赞同!
小广歌 + 1 用心讨论,共获提升!
果汁分妳一半 + 1 谢谢@Thanks!
安居故邑 + 1 + 1 谢谢@Thanks!
qwe315333 + 1 + 1 谢谢@Thanks!
Autom + 1 + 1 谢谢@Thanks!
wushaominkk + 3 + 1 鼓励新人贴,吾爱因你更精彩,期待您更好的作品!
0603160201 + 1 热心回复!
zsj236 + 1 谢谢@Thanks!
孟德兄 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| ccph 发表于 2018-7-21 21:56
xlose13720 发表于 2018-7-21 21:47
[mw_shl_code=python,true]Traceback (most recent call last):
  File "gequ.py", line 26, in get
     ...

第26句改为:urllib.request.urlretrieve(url,'d:/music/' + x['name'].replace('/','') + '.mp3')
zzzhhh27 发表于 2018-7-21 12:49
Hzming0925 发表于 2018-7-21 12:56
wushaominkk 发表于 2018-7-21 12:57
鼓励新人贴,吾爱因你更精彩,期待您更好的作品!
wushaominkk 发表于 2018-7-21 12:57
鼓励新人贴,吾爱因你更精彩,期待您更好的作品!
医药棍道 发表于 2018-7-21 13:03
谢谢大佬
安居故邑 发表于 2018-7-21 13:10
谢谢大佬
qwe315333 发表于 2018-7-21 13:10
谢谢楼主分享
123qinjin 发表于 2018-7-21 14:22
.我有帐号了,嘻嘻嘻
123qinjin 发表于 2018-7-21 14:23
zzzhhh27 发表于 2018-7-21 12:49
这个是个好东西,如果有手机版就好了!

我终于有无爱帐号了,
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-22 21:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表