python喜马拉雅收费_python抓取喜马拉雅免费专辑

老规矩,先上代码

import requests

import os

import urllib

# json文件地址

json_url = "https://www.ximalaya.com/sets/8912476.ext.json"

# 仿冒Chrome浏览器进行访问,否则会无法访问

headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}

response = requests.get(json_url, headers=headers)

# 获取json文件

full_json = response.json()

# 找到所有的声音

tracks = full_json['tracks']

# 创建下载文件夹

if not os.path.exists('download'):

os.makedirs('download')

# 逐个下载

for track in tracks:

# 获取json中的下载地址和标题

url = track['play_url']

title = track['title']

# 用标题作为文件名

filename = "download/"+title+".mp3"

# 下载

with urllib.request.urlopen(url) as web:

with open(filename, 'wb+') as outfile:

outfile.write(web.read())

# 输出下载结果

print(title," downloaded.")

print('Download is done.')

这次的抓取是顺着上一篇,上一次在抓取iTunes的时候看到有些音频的源是来自喜马拉雅的,所以,我顺便去喜马拉雅转了一下。

每一个喜马拉雅的专辑,例如:郭德纲21年相声精选,都会有一个分享链接,点开后,选择“展开获取专辑链接”,这时候会有“html代码”、“通用代码”和“微电台”三个选项,选择html代码,并复制链接:https://www.ximalaya.com/thirdparty/player/album/player.html?id=9723091&type=red。

把上面的HTML代码的地址复制到浏览器中打开,并使用浏览器的开发者工具跟踪网络情况,会发现一个xhr里面包含该专辑所有的音频信息,地址为https://www.ximalaya.com/sets/9723091.ext.json,只需要分析该json的字段就可以抓紧了。

python代码没有什么难度。

路人:“禅师,喜马拉雅上面这些免费资源随时可以收听,流量也不算大,为什么还要下载呢?”

禅师微微一笑,指着面前一把木锤对路人道:“看看它你就明白了。”

路人参详许久,若有所思道:“大师的意思是否是说,下载的意义就像这把木锤一样,看似平淡无奇,但是有一种工匠精神?”

大师闭上眼睛道:“非也!我意思是,我下载关你锤子事。”

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值