主要爬取喜马拉雅悬疑栏目的小说名字,演播者以及简介,先上爬取的数据图。

1. 此次抓取使用fiddler抓包,喜马拉雅的抓包很简单,这里就不多阐述。

通过对比两条的url可以发现只有ts-时间戳和pageId不同,其他的都没变化,因此可以知道,改变pageId就可以实现翻页。另外最上面的url是我去除一些不必要的参数,其没有影响。
2. 分析数据

小说是存储在列表当中的,所以需要先取出这个列表,再遍历获取小说的信息。

# 访问的url
url = 'http://mobile.ximalaya.com/mobile/discovery/v2/category/metadata/albums?categoryId=49&device=android' \'&keywordId=232&metadatas=&operator=2&pageId=1&pageSize=20&scale=1&version=6.5.87'
# 请求url获得返回的数据是json格式
resp = requests.get(url, headers=headers).json()
# 获取数据存储的列表
datas = resp.get('list')
# 判断列表是否不为空
if datas:for data in datas:# 声明一个字典存储数据data_dict = {}# 获取演播者的名字nickname = data.get('nickname')# 获取小说的名字title = data.get('title')# 获取小说简介trackTitle = data.get('trackTitle')data_dict['nickname'] = nicknamedata_dict['title'] = titledata_dict['trackTitle'] = trackTitleprint(data_dict)

3. 然后便是将数据保存,data_list是全局变量,详细请看后面的全代码

# 将数据保存为json文件with open('data_json.json', 'w', encoding='utf-8') as f:json.dump(data_list, f, ensure_ascii=False, indent=4)print('json文件保存成功')# 将数据保存为csv文件# 表头title = data_list[0].keys()with open('data_csv.csv', 'w', encoding='utf-8', newline='') as f:writer = csv.DictWriter(f, title)# 写入表头writer.writeheader()# 批量写入数据writer.writerows(data_list)print('csv文件保存成功')

4. 全部代码附上

import requests
import csv
import json# 构建请求头
headers = {'Accept': '*/*','user-agent': 'ting_6.5.87(HRY-AL00T,Android28)','Host': 'mobwsa.ximalaya.com','Connection': 'Keep-Alive','Accept-Encoding': 'gzip'}# 声明一个列表存储字典
data_list = []# 请求url并获取数据函数
def get_index():page = 1while True:# 访问的urlurl = 'http://mobile.ximalaya.com/mobile/discovery/v2/category/metadata/albums?categoryId=49&device=android' \'&keywordId=232&metadatas=&operator=2&pageId={}&pageSize=20&scale=1&version=6.5.87'.format(page)# 请求url获得返回的数据是json格式resp = requests.get(url, headers=headers).json()# 获取数据存储的列表datas = resp.get('list')if datas:get_info(datas)else:breakpage += 1# 获取想要数据函数
def get_info(datas):for data in datas:# 声明一个字典存储数据data_dict = {}# 获取演播者的名字nickname = data.get('nickname')# 获取小说的名字title = data.get('title')# 获取小说简介trackTitle = data.get('trackTitle')data_dict['nickname'] = nicknamedata_dict['title'] = titledata_dict['trackTitle'] = trackTitledata_list.append(data_dict)print(data_dict)# 保存文件函数
def save_file():# 将数据保存为json文件with open('data_json.json', 'w', encoding='utf-8') as f:json.dump(data_list, f, ensure_ascii=False, indent=4)print('json文件保存成功')# 将数据保存为csv文件# 表头title = data_list[0].keys()with open('data_csv.csv', 'w', encoding='utf-8', newline='') as f:writer = csv.DictWriter(f, title)# 写入表头writer.writeheader()# 批量写入数据writer.writerows(data_list)print('csv文件保存成功')def main():get_index()save_file()if __name__ == '__main__':main()

python爬虫——爬取喜马拉雅app相关推荐

  1. Python爬虫|爬取喜马拉雅音频

    "GOOD Python爬虫|爬取喜马拉雅音频 喜马拉雅是知名的专业的音频分享平台,用户规模突破4.8亿,汇集了有声小说,有声读物,儿童睡前故事,相声小品等数亿条音频,成为国内发展最快.规模 ...

  2. Python爬虫爬取手机APP的数据

    1.抓取APP数据包 方法详细可以参考这篇博文:http://my.oschina.net/jhao104/blog/605963 得到超级课程表登录的地址:http://120.55.151.61/ ...

  3. Python爬虫爬取微信朋友圈的方法,感兴趣的朋友可以了解下

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 小雨 | 作者 python教程 | 来源 接下来,我们将实现微信朋友圈的 ...

  4. Python爬虫爬取微信朋友圈

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.op-kg.com/ ...

  5. Python爬虫爬取美女写真实例

    Python爬虫爬取美女写真实例 微信关注公众号:夜寒信息 致力于为每一位用户免费提供更优质技术帮助与资源供给,感谢支持!     这是我写的一个较为简单的爬虫代码,用于爬取美女写真(咳咳,当然是正规 ...

  6. python爬虫爬取微信公众号小程序信息

    python爬虫爬取微信公众号小程序信息 爬取内容 某汽车维修信息提供的维修店名称,地点以及电话(手机)号码 爬取步骤 啥也别管,先抓包看看,在这里,博主使用的抓包软件是charles 抓包:将网络传 ...

  7. 在当当买了python怎么下载源代码-python爬虫爬取当当网

    [实例简介]python爬虫爬取当当网 [实例截图] [核心代码] ''' Function: 当当网图书爬虫 Author: Charles 微信公众号: Charles的皮卡丘 ''' impor ...

  8. python爬虫代码实例-Python爬虫爬取百度搜索内容代码实例

    这篇文章主要介绍了Python爬虫爬取百度搜索内容代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 搜索引擎用的很频繁,现在利用Python爬 ...

  9. python爬虫数据分析可以做什么-python爬虫爬取的数据可以做什么

    在Python中连接到多播服务器问题,怎么解决你把redirect关闭就可以了.在send时,加上参数allow_redirects=False 通常每个浏览器都会设置redirect的次数.如果re ...

最新文章

  1. FPGA之道(26)VHDL初始化
  2. amd一点也不yes_最不值得买的高端显卡!RTX3080从真香变成了鸡肋?
  3. C# 字符串操作:split、substring、Format
  4. HDU2009 求数列的和【迭代】
  5. POJ NOI0105-41 数字统计
  6. python是什么意思-python是什么
  7. 安卓开发之刮刮乐实例教程
  8. php 保存文件并换行,php是怎样向文件中写入换行_后端开发
  9. 软件测试每日例会,每日例会(二).md
  10. vss 迁入后,服务器上面的文件没有变化,VSS迁移
  11. python绘制多段数码管
  12. CF1132D Stressful Training Solution
  13. eovs实训报告总结心得_实训报告心得体会
  14. Java 小例子:分解质因数
  15. 用5v1a的充电器给1.2v的镍氢电池充电(充满后可自动断电)或者可以定时
  16. 第38.1节 osg加载大tif-编译vpb
  17. linux怎么添加用户并赋予root权限
  18. 用EDA处理蛋白质数据小记
  19. git从远程下载项目到本地以及本地提交远程
  20. 汽车系统升级更新,诺威达k2201升级包,2022年11月7日,刚更新的

热门文章

  1. escape() 方法:
  2. Python中的匿名函数
  3. React——高阶组件(HOC)
  4. Markdown之编辑器Atom
  5. MySQL UDF提权执行系统命令
  6. 用UltraEdit判断打开文件的编码类型
  7. 分享一下电信IPCC 41.1 IPCC
  8. JAVA计算机毕业设计医院病房管理系统计算机(附源码、数据库)
  9. WPEWebkit调试MSE播放
  10. 装好KALI后配置,设置中文,换成国内的源