当前位置: 主页 > Python语言

python下载文件-python ftp下载文件

发布时间:2023-02-09 16:32   浏览次数:次   作者:佚名

python下载文件_python http下载文件_python ftp下载文件

阅读文本大约需要 5 分钟

学习是一个长期的过程。 学习的方式也有很多。 如果你在家有空闲时间,你可以选择看书。 现在用手机看电子书也很方便。 pk哥最近看了不少电子书,感觉视力明显下降了。 停下来不学习是不可能的。 我想到了通过聆听来学习。 如今,各种平台上都有相当多的音频文件。 大家听得比较多的平台应该就是喜马拉雅了。 今天用Python通过输入关键字查询喜马拉雅的音频,并下载保存到本地。

保存效果

通过关键词“腾讯传记”找到了6个音频专辑,以下是其中一个专辑中的7个音频文件。

python下载文件_python ftp下载文件_python http下载文件

项目环境

语言:Python3

编辑:Pycharm

程序结构

python http下载文件_python ftp下载文件_python下载文件

程序主要包括四个部分:

页面分析

我们要下载音频文件,首先我们要找到下载音频的url,我们打开浏览器自带的调试工具(我用的是Chrome),按快捷键F12快速打开调试工具。 调试器切换到网络。 我以最近刚看的《腾讯外传》为例,点击专辑封面中间的播放按钮python下载文件,专辑中的音频信息是json格式的数据。 共有 7 个音频文件。

python下载文件_python ftp下载文件_python http下载文件

任意扩展音频的详细信息,详细信息包括音频文件的标题和下载链接。 找到音频的下载链接后,就可以下载音频了,接下来的工作将围绕如何获取音频文件的下载链接展开。

python下载文件_python ftp下载文件_python http下载文件

获取页面源码

我们先定义一个获取页面html信息的函数。 此函数添加浏览器标头信息标头。 出于安全原因,使用代理 IP。 有兴趣的可以自己创建IP代理池,IP失效后会自动更换。

python ftp下载文件_python下载文件_python http下载文件

获取相册信息

接下来,我们需要获取专辑ID,因为音频下载链接是由专辑ID拼接的。 让我们看看刚才包含音频文件名和下载链接信息的标头。 我们可以看到,专辑链接的组合中的albumId就是专辑ID。 指示当前页码和页面上存储的最大音频文件数。

python ftp下载文件_python http下载文件_python下载文件

专辑 ID 信息包含在按关键字搜索的信息中。

python http下载文件_python下载文件_python ftp下载文件

使用BeautifulSoup在页面中提取相册的ID信息,顺便也提取相册的标题信息,作为后面创建的相册目录的名称,主要代码如下。

python http下载文件_python下载文件_python ftp下载文件

获取页数

以上方法获取相册ID信息。 接下来,我们需要知道相册下分享了多少页的音频文件。 我们将音频文件总数除以 30 以获得页数。 音频文件总数信息在音频文件列表的数据中。 下图中,我以数量比较多的音频文件《明朝那些事儿》为例,一共268个音频文件。

python http下载文件_python下载文件_python ftp下载文件

有了音频总数,每页音频数为30,所以我们可以计算出页数,可以分三种情况判断:总数小于等于30,总数大于30且是30的倍数,总数大于30又不是30的倍数,相关代码如下。

python http下载文件_python ftp下载文件_python下载文件

下载音频文件

专辑ID、专辑名称、页数都有了,就可以下载音频文件了。 下载音频时,当音频少于30个时,需要做异常处理。 音频文件为付费文件时,无法下载。 这个时候再做判断。 当音频的下载链接为null或None时,跳出循环爬取下一张专辑的文件。

python下载文件_python http下载文件_python ftp下载文件

如果音频下载链接为null或None,这里我们以《明朝那些事》为例,通过关键词《明朝那些事》只抓取了其中一张专辑的50个音频文件,以下音频文件不提供下载链接,因此无法下载。

python下载文件_python ftp下载文件_python http下载文件

创建存放音频的目录

为了将下载的音频文件有序的存放在以专辑名命名的文件夹中,我们使用代码自动创建一个目录,并将相应的文件下载到该目录下。

python ftp下载文件_python http下载文件_python下载文件

后记

本文的目的是将喜马拉雅的免费音频下载到本地并传输到手机,让大家在保护视力的同时随时学习。 当然,流量够用的也可以在APP上在线收听。

此项目是通过输入关键字搜索音频专辑来下载的。 对于一些没有对应音频的关键词,系统会向您推荐音频。 所以,为了提高大家的效率,在运行代码之前,输入需要搜索的关键词,看看有没有相关的音频python下载文件,有的话再运行代码。 一般来说,流行度高的音频专辑的销量会更高。 下载您需要的音频专辑后,如果您不需要停止运行后面专辑的代码。