iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python爬虫之批量下载喜马拉雅音频的方法
  • 548
分享到

Python爬虫之批量下载喜马拉雅音频的方法

2023-06-15 03:06:06 548人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章给大家分享的是有关python爬虫之批量下载喜马拉雅音频的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、解析网站1.1 获取音频地址在喜马拉雅网站上,随便点开一个音频,打开“开发者工具”,再点击播

这篇文章给大家分享的是有关python爬虫之批量下载喜马拉雅音频的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

一、解析网站

1.1 获取音频地址

在喜马拉雅网站上,随便点开一个音频,打开“开发工具”,再点击播放按钮,可以看到出现了多个请求:

Python爬虫之批量下载喜马拉雅音频的方法

经过排查,发现可疑url:

Python爬虫之批量下载喜马拉雅音频的方法

查看它的响应信息,发现音频地址就在里面:

Python爬虫之批量下载喜马拉雅音频的方法

接下来,解析这个返回音频地址的url:

https://www.ximalaya.com/revision/play/v1/audio?id=348451879&ptype=1

发现url中的id参数就决定了返回的音频地址,而id参数是音频的id号。

1.2 解析专栏网页

我们已经知道了获取音频url的网址,接下来要获取一个专栏内的音频id和名称,打开一个专栏,发现:

Python爬虫之批量下载喜马拉雅音频的方法

所有的音频存放在class为1F_的li标签中,再来解析li标签:

Python爬虫之批量下载喜马拉雅音频的方法

在li标签中的第一个a标签存储着我们所有需要的数据,妙~啊!

1.3 整理亿下思路

思路:

获取专栏内的li标签

获取li标签里的第一个a标签

读取a标签的title和href属性

将href解析成音频id

将id带入url请求音频源地址

提取音频源地址

请求音频源地址

保存音频(文件名为a的title属性)

思路整理完了,开始编写代码。

二、编写爬取代码

代码奉上——

import requestsfrom fake_useragent import UserAgent as uafrom bs4 import BeautifulSoup as bs# 专栏地址music_list_url = 'Https://www.ximalaya.com/ertongjiaoyu/19702607/'# 获取音频地址的urlget_link_url = "https://www.ximalaya.com/revision/play/v1/audio"# UA伪装headers = {    "User-Agent": ua().random}# 参数params = {    "id": None,    # id先设为None    "ptype": "1",}# 获取专栏html源码music_list_r = requests.get(music_list_url, headers=headers)# 解析 获取所有li标签soup = bs(music_list_r.text, "lxml")li = soup.find_all("li", {"class": "lF_"})# for循序遍历处理for i in li:    a = i.find("a")   # 找到a标签    # 获取href属性    # split("/")将字符串以"/"作为分隔符 从右往左数第一项是id号    music_id = a.get("href").split("/")[-1]    # 获取title属性 和“.m4a”拼接成文件名    music_name = a.get("title") + ".m4a"# 修改请求参数id    params['id'] = music_id# 获得音频源地址    r = requests.get(get_link_url, headers=headers, params=params)    link = r.JSON()['data']['src']# 获取音频文件并保存    music_file = requests.get(link).content    with open(music_name, "wb") as f:        f.write(music_file)print("下载完毕!")

运行代码,等待亿会(真的要等亿会),可以看到当前目录下已经出现了音频文件,如图:

Python爬虫之批量下载喜马拉雅音频的方法

感谢各位的阅读!关于“python爬虫之批量下载喜马拉雅音频的方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

Python的五大特点是什么

python的五大特点:1.简单易学,开发程序时,专注的是解决问题,而不是搞明白语言本身。2.面向对象,与其他主要的语言如c++和Java相比, Python以一种非常强大又简单的方式实现面向对象编程。3.可移植性,Python程序无需修改就可以在各种平台上运行。4.解释性,Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。5.开源,Python是 FLOSS(自由/开放源码软件)之一。

--结束END--

本文标题: Python爬虫之批量下载喜马拉雅音频的方法

本文链接: https://www.lsjlt.com/news/277133.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python爬虫之批量下载喜马拉雅音频
    目录一、解析网站1.1 获取音频地址1.2 解析专栏网页1.3 整理亿下思路二、编写爬取代码一、解析网站 1.1 获取音频地址 在喜马拉雅网站上,随便点开一个音频,打开“开发者工具”...
    99+
    2024-04-02
  • Python爬虫之批量下载喜马拉雅音频的方法
    这篇文章给大家分享的是有关Python爬虫之批量下载喜马拉雅音频的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、解析网站1.1 获取音频地址在喜马拉雅网站上,随便点开一个音频,打开“开发者工具”,再点击播...
    99+
    2023-06-15
  • Python爬虫实战之批量下载快手平台视频数据
    知识点 requests json re pprint 开发环境: 版 本:anaconda5.2.0(python3.6.5) ...
    99+
    2024-04-02
  • python爬虫框架scrapy下载中间件的编写方法
    目录下载中间件process_requestprocess_responseprocess_exception其它下载中间件 在每一个scrapy工程中都有一个名为 middlewa...
    99+
    2024-04-02
  • python批量下载文件的方法是什么
    在Python中,可以使用requests库来批量下载文件。以下是一个简单的示例代码: import requests file_...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作