爬虫MP3文件下载核心代码"/>
Pyhton酷我音乐爬取,爬虫MP3文件下载核心代码
Pyhton酷我音乐爬取MP3文件案例
一、数据爬取思路分析
找到数据来源,通过浏览器抓包工具
通过网络标签和关键字搜索
查看网页源代码,找到数据位置
确定实现思路和技术实现方式
二、代码实现
发送请求
获取数据
解析数据
保存数据
使用会员登录可下载所有列表歌曲,非会员只能下载免费的MP3歌曲
支持分页下载,下载所有分页列表歌曲
关注微信公众号【站在前沿】,回复kuwo,获取完整代码下载地址
kuwo.py
def downMp3s(musicIds, musicNames):
for musicId, musicName in zip(musicIds, musicNames):
url = f'={musicId}&type=music&httpsStatus=1&reqId=7e2a25c3-51e3-11ee-b0bd-49dd3fc18b18&plat=web_www&from='
# logging.debug(until.getResJson(url=url, headers=headers))
code = until.getResJson(url=url, headers=headers)['code']
if code == 200:
downUrl = until.getResJson(url=url, headers=headers)['data']['url']
# logging.debug(downUrl)
until.downBinFile(downUrl, '', 'mp3', musicName + '.mp3')
logging.info('歌曲:' + musicName + '.mp3 下载完成')
elif code == -1:
logging.info('歌曲:' + musicName + '为付费内容,无法下载')
else:
logging.info('歌曲:' + musicName + '下载时返回Code为' + code)
if __name__ == '__main__':
urlMp3List = ''
params = {
"bangId": "93",
"pn": "1",
"rn": "20",
"httpsStatus": "1",
"reqId": "787a5650-51e8-11ee-adef-53b278c91f8b",
"plat": "web_www",
"from": ""
}
for pn in range(1, 16):
params['pn'] = str(pn)
mp3List = until.getResJson3(urlMp3List, headers, params)
# pprint.pprint(mp3List)
musicIds = []
musicNames = []
for i in range(0, 20):
musicIds.append(mp3List['data']['musicList'][i]['rid'])
musicNames.append(mp3List['data']['musicList'][i]['name'])
# logging.debug(musicIds)
# logging.debug(musicNames)
# 开始下载当前页的歌曲列表
downMp3s(musicIds, musicNames)
logging.info('===============第' + str(pn) + '页下载完成=================')
关注微信公众号【站在前沿】,回复kuwo,获取完整代码下载地址
更多推荐
Pyhton酷我音乐爬取,爬虫MP3文件下载核心代码
发布评论