虽然这段代码不难, 但还是有人不自己写却把我写的代码放到网上来, 整理了一翻, 自己放一次

import json
import os
import re
import requestsdef xima():# 模拟浏览器headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"}# 拿到XX排行榜的所有关键字的urlurl_1 = "https://www.ximalaya.com/revision/getRankCluster"# 利用requests解析来得到源代码, 得到一个JSON类型的字符串json_1 = requests.get(url_1, headers=headers).content.decode()# 通过json模块来转换成Python的字典dict_1 = json.loads(json_1)# 从字典里面把上面写的XX排行的的关键字拿出来name_1 = dict_1['data']['list']for i in name_1:name = i['name']  # 终于拿到了print(name)# 就可以跟这个url拼接, 得到的url里面有所有书的id, 和名字url_2 = "https://www.ximalaya.com/revision/getRankList?code=" + name# 还是一样解析得到一个JSON数据json_2 = requests.get(url_2, headers=headers).content.decode()# 依然通过转换得到字典dict_2 = json.loads(json_2)# 从字典里面取到一个个的id和对应的名字for j in dict_2['data']['albums']:id_2 = j['id']title = j['albumTitle']title = re.sub('\?|"|\|', '', title)  # 因为有的名字里面有通配符, 所以得换成空if not os.path.exists(title):os.mkdir(title)  # 创建文件夹, 方便待会把这本书的所有音频存在进去# 有了id我们就可以进行拼接了, 这个链接里面就有每个音频的url. 但是有很多页, 所以我们得使用格式化点位符拼接得到每一页的urlurl_3 = "https://www.ximalaya.com/revision/play/album?albumId=" + str(id_2) + "&pageNum={}&sort=-1&pageSize=30"for i in range(50):url = url_3.format(i + 1)  # 循环拼接成不同页的urltry:# 得到每一次的源代码, JSON类型json_3 = requests.get(url, headers=headers).content.decode()except Exception as e:print(e)  # 因为我们循环了50次, 而有的书根本没有那么多页, 所有得try一下跳出循环continue# 又一次进行转换得到字典dict_3 = json.loads(json_3)n = 1# 终于可以从字典里面拿到音频的url了, 还有对应的名字for k in dict_3['data']['tracksAudioPlay']:src = k['src']name = k['trackName']print(src, name)name = re.sub('\?|"|\|', '', name)  # 因为有的名字里面有通配符, 所以得换成空# 给每一个音频拼接名字,with open(title + '/' + str(i * 30 + n) + '%s.m4a' % name, 'ab') as f:r = requests.get(src, headers=headers)ret = r.content# 获取到音频的二进制文件保存起来才是音频文件f.write(ret)n += 1if __name__ == '__main__':xima()

喜马拉雅全站音频爬取相关推荐

  1. Python爬虫--喜马拉雅三国音频爬取

    本文以爬取喜马拉雅"三国演义-原文朗读[四大名著]"一书为例,演示下Python爬虫. 原书地址:http://www.ximalaya.com/4228109/album/268 ...

  2. 16-爬虫之scrapy框架手动请求发送实现全站数据爬取03

    scrapy的手动请求发送实现全站数据爬取 yield scrapy.Reques(url,callback) 发起的get请求 callback指定解析函数用于解析数据 yield scrapy.F ...

  3. Python爬虫之网易云歌单音频爬取(解决urlretrieve爬取文件不能播放问题)

    网易云歌单音频爬取 写在前面:最近学习爬虫,对小说和图片都进行过简单爬取,所以打算爬取音频,但是其中遇到点问题也解决了,写下博客记录并希望对大家也有帮助. 爬取对象:对于目前主流的几个音频播放网站,我 ...

  4. 爬虫day5 易中天品三国音频爬取

    # 易中天品三国音频爬取import requests from lxml import etree from urllib import parse,request base_url = 'http ...

  5. 【爬虫修炼和实战】二、从requests开始——爬取喜马拉雅全站音频数据(基础篇)

    第二篇为利用爬虫基本的requests库和正则表达式爬取喜马拉雅全站数据. 申明:本文仅做学习用. 多图警告. 目录 一.常用函数和库 二.网站结构分析 首页 https://www.ximalaya ...

  6. 【Python爬虫系列教程 22-100】小姐姐教大家爬取喜马拉雅全站音频数据,探秘喜马拉雅的天籁之音

    文章目录 一.前言 二.寻找音频的URL 三.请求参数的处理 四.重新分析目标网站 五.实现代码 六.爬取结果 一.前言 喜马拉雅FM是一个知名的音频分享平台,在移动音频行业的市场占有率已达73%,用 ...

  7. Python爬虫--喜马拉雅音频爬取

    爬取喜马拉雅三国中的前十章音频: #导入requests模块 import requests #导入正则表达式 import re #解决反爬问题,导入UA header = { 'User-Agen ...

  8. python 喜马拉雅_Python爬虫入门教程14:喜马拉雅有声书音频爬取

    基本开发环境????Python 3.6 Pycharm 相关模块的使用????import requests import os 安装Python并添加到环境变量,pip安装需要的相关模块即可. 一 ...

  9. python爬取喜马拉雅收费_python 爬取喜马拉雅节目生成RSS Feed

    记录于:2020年12月03日 用了N年的手机在经历N次掉落之后终于扛不住了,后背都张嘴了,估计再摔一次电池都能飞出来. 换了手机,由于之前有听喜马拉雅的习惯,但是手机里自带有播客软件,强迫症逼着我不 ...

最新文章

  1. 自动化监控--zabbix中的show value详解
  2. python中的数据类型有哪些是可阅读,Python中典型的数据类型中哪个只能阅读不能修改...
  3. n个数里找出前m个数(或者 从10亿个浮点数中找出最大的1万个)
  4. Dubbo Mesh 在闲鱼生产环境中的落地实践
  5. python server client_python 实现简单client与server | 学步园
  6. C++ Qt学习笔记(2)简易计算器设计(为计算器添加菜单功能)
  7. 67% 为宽松许可证,2020 年开源许可证最新趋势来袭
  8. pytorch之BatchNorm
  9. 使用jsp:include嵌入页面的两种方式
  10. jquery 对象 和 js 对象 为什么要互相转换?_JQuery对象与dom对象两者之间的相互转换...
  11. 2012 国庆中秋黄金周流水帐
  12. springboot 整合 j2cache
  13. mysql 节假日判断,sql 节假日判断(春节、中秋、国庆、周末等)
  14. C语言绘图示例-调色板
  15. 前端开发者思考:假如5年后你是开发总监
  16. mac居家办公怎么连接公司内网,用tunnelblick
  17. 倪海厦天纪笔记16_倪海厦《天纪》——人间道听课笔记
  18. java实现word文件转图片,支持分页
  19. Myeclipse中@auther
  20. java生成二维码到文件,java生成二维码转成BASE64

热门文章

  1. vim 打开php 回车没了,设置 - VIM在Fi结束时禁用自动换行
  2. 微信小程序点赞成功,取消点赞、评论。
  3. 猫咖小程序开发有何优势?具备什么功能版块?
  4. 账户经常被盗号怎么办?防盗“黑科技”了解一下
  5. 积极心态,助力人生成功
  6. 2021年中国乳制品产量、营业收入、利润总额及进出口分析[图]
  7. select函数使用浅析
  8. kaggle数据分析实践项目练习——人力资源分析
  9. 用Python编写斐波那契数列(Fibonacci Sequence)
  10. 求逆序对---学习笔记