爬取喜马拉雅FM分类榜的代码分析

import requests
import json
import os

headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36'
}
base_path = 'F:\\SxhMycode\\PYtest\\ead\\FM\\'#基地址

def mkdir(path):#创建文件夹
    path = path.strip()
    path = path.rstrip("\\")
    isExists = os.path.exists(path)
    if not isExists:
        print(path + ' 创建成功')
        os.makedirs(path)


page = 'youshengshu'  #关键字搜索
theme_url = 'https://www.ximalaya.com/revision/getRankList?code='+page #大分类下的地址
start_url = 'https://www.ximalaya.com/revision/play/album?albumId={}&pageNum={}&sort=-1&pageSize=30'#小分类下的地址


theme = requests.get(theme_url,headers=headers)     #获取小方向下的所有FM电台歌单
ret = theme.content.decode()          #获取代码以字符串形式表现出来
str = json.loads(ret)         #解析json类型的字符串
substring = str['data']['albums']  #解析网页获取源码
for i in substring:
    albumTitle = i['albumTitle']           #获取歌单名
    id = i['id']                 #获取id
    path = base_path + albumTitle  #获取歌单名创建文件夹
    mkdir(path)
    for i in range(1):   #根据所需歌曲来调大小
        url = start_url.format(id , i + 1)  #将start_url地址补充完整
        r = requests.get(url,headers=headers)
        ret1 = r.content.decode()
        str1 = json.loads(ret1)
        substring1 = str1['data']['tracksAudioPlay']   #同上
        for i in substring1:
             src = i['src']
             name = i['trackName']   #下载备注的名字
             with open(path+'/%s.m4a' % name, 'ab') as f:
                  r = requests.get(src)
                  f.write(r.content)
                  print(name)
要使用Python爬取喜马拉雅的数据,可以使用requests库发送HTTP请求获取数据。首先,你需要使用requests.get()方法发送GET请求到喜马拉雅的API接口,例如: response = requests.get('https://www.ximalaya.com/revision/play/album?albumId=16372952&pageNum=1&sort=-1&pageSize=30') 然后,你可以使用json.loads()方法将返回的数据转换成字典对象,以便于处理和提取其中的信息。例如: data = json.loads(response.text) audio_data = data['data']['tracksAudioPlay'] 这样你就可以获取到喜马拉雅的音频数据。接下来,你可以根据需要使用这些音频数据进行相关的分析、存储或其他操作。注意,这里的示例只是一个基本的示范,具体的爬取操作可能需要根据喜马拉雅的API文档和需求进行进一步的定制和处理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python爬虫|爬取喜马拉雅音频](https://blog.csdn.net/weixin_34122548/article/details/93600299)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Python实例---爬取下载喜马拉雅音频文件](https://blog.csdn.net/weixin_30701575/article/details/99085866)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值