一、下载原理
1)找到目标音频的专辑网页,这里以 kite runner mp3为例。(需要自己找)
https://www.xi___ma___la_____ya.com/album/71718770

2)进入详细页(称为一次请求URL)(不需要自己找)

音频为m4a格式,不会立即返回。进入到详细页后,人工点击播放键,发送二次请求才能返回m4a,第二次请求包装在json格式中。(不需要自己找了,脚本自动找)
即 ‘data’ : { … ‘src’: ’ xxx.m4a’}

3)第二次请求时url的变化在于 id,格式如下
https://www.xi____ma_____la_____ya.com/revision/play/v1/audio?id=577233294&ptype=1
脚本自动查找如下tag,并分析出id和title,其中id用于组织每次的m4a请求url, 而title用于迅雷下载时自动改名。
a href=“/album/https://www.xi_____ma_____la_____ya.com/sound/593062498”>nineteen</a

二、代码如下

# -*- coding:utf-8 -*-
import requests
from bs4 import BeautifulSoup
import re
import os
from win32com.client import DispatchHeaders = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'
}def get_xima_url(url):wd_data = requests.get(url,headers=Headers)wd_data.encoding = 'UTF-8'soup = BeautifulSoup(wd_data.text,'lxml')return soupdef get_xima_json(url):wd_data = requests.get(url,headers=Headers)    return wd_data.json()    def get_m4a(url):m4a_soup = get_url(url)m4a_hrefs = m4a_soup.find_all("a",attrs={'href':True}) pattern = '/album/..*/sound/(\d+)'o = Dispatch("ThunderAgent.Agent64.1")  for alink in m4a_hrefs:#print(alink)res = re.match(pattern,alink['href'])        name = alink.stringif res is not None:id = res.group(1)m4a_url = "https://www.xi_____ma____la____ya.com/revision/play/v1/audio?id=" + id + "&ptype=1"json = get_xima_json(m4a_url)m4a = json['data']['src']o.AddTask(m4a, name)o.CommitTasks()           #<a href="/album/https://www.xi____ma____la____ya.com/sound/593062498"><span class="title b_t">nineteen</span></a>
if __name__ == '__main__':url = "https://www.ximalaya.com/album/71718770"get_m4a(url)

说明一:
m4a_hrefs = m4a_soup.find_all(“a”,attrs={‘href’:True}) 可以过滤掉不需要的tag a。

三、如何用于自己感兴趣的内容下载
只需要修改 倒数第二行的url最后的数字为你找到的专辑目录网页对应的数字。

2023年批量下载和改名音频专辑(单页列表)相关推荐

  1. 2023年批量下载和改名音频专辑(多页列表)

    一.下载原理 多页列表,有get类型的,有post类型的,xima的专辑多页列表属于get类型. 比如"https://www.xi__mala__ya.com/album/262212&q ...

  2. 2023年批量下载和改名音频专辑(系列3之selenium-wire方式)

    XIMA多页动态列表中的音频下载seleniumwire 步骤说明: 步骤一:获取xima cookie 步骤二:遍历目录,逐一播放后抓取响应信息 除了系列1之单页,系列2之多页,VIP音频还有动态加 ...

  3. 批量下载和改名21世纪英文报学生周报听力

    批量下载和改名21世纪英文报学生周报听力 如何找到音频 痛点 python批量下载和改名 如何找到音频 建议使用 google chrome浏览器. https://www.i21st.cn/ 导航横 ...

  4. nodejs虾米音乐批量下载某个歌手的专辑

    使用nodejs 批量下载虾米音乐的 方法. 使用到的工具 fs,cheerio,request,redis; 模块 作用 fs 主要完成建立目录和文件的功能 request 用于进行访问url ch ...

  5. python网上批量下载表格_python爬虫智能翻页批量下载文件的实例详解

    python爬虫遇到爬取文件内容时,需要一页页的翻页爬取,这样很是麻烦,其实可以获取每个列表信息下的文件名和文件链接,让文件名和文件链接处理为列表,保存后下载,实现智能翻页批量下载文件,本文以以京客隆 ...

  6. 网店描述页详情页产品图片批量下载提取采集软件

    1688描述页详情页产品图片批量下载提取采集软件 阿里巴巴国际站描述页详情页产品图片批量下载提取采集软件 淘宝描述页详情页产品图片批量下载提取采集软件 天猫描述页详情页产品图片批量下载提取采集软件 京 ...

  7. 新一配:perl循环调用python爬虫批量下载喜马拉雅音频

    新一配:perl循环调用python爬虫批量下载喜马拉雅音频 手机下载喜马拉雅音频后,获得的音频文件虽然可以转成mp3格式,但其文件名却是一长串字符串,无法辨别是哪一集,网上找了各种工具,都有局限性, ...

  8. node.js 实现简单爬虫批量下载喜马拉雅音频

    前提:最近一直在看node,平时碎觉喜欢听盗墓笔记啥的有声小说,然后突然就就想试着写个爬虫自己下载下来,虽然有点多此一举,但是就当学习练练手了,在这里记录一下! 没有express基础的,请先行了解 ...

  9. 利用Python编写脚本批量下载公众号中的音频

    欢迎大家光临我的博客,大家一起交流学习哦 陈京九的博客 首先声明我只是一个小菜鸡,把自己琢磨一些功能的过程发到了这里当做记录,希望大神们轻喷,能给我一些指导就更好啦~ 上一篇博客教大家下载了公众号中的 ...

最新文章

  1. 软件如何控制硬件、编译器和操作系统是否需要编译
  2. Codeforces Round #245 (Div. 1) E. Points and Segments 欧拉回路 + 建模
  3. Redis之简单动态字符串sds
  4. Java EE业务处理流程与XML的引入
  5. Golang入门(4):并发
  6. 操作系统--文件管理
  7. 联想拯救者Y7000P的一些功能键
  8. [2020-11-30 ]国产化操作系统调研
  9. 计算机的组装与维修的知识点总结,计算机组装与维修教学总结
  10. java 工作一年的简历
  11. Uc页面加载完毕后页面字体变大
  12. MySQL闪回工具之my2sql
  13. 开关造成的毛刺_令人困扰的DAC输出毛刺消灭记
  14. 基于DCT的图像数字水印算法
  15. Ubuntu 小企鹅输入法fcitx 支持 五笔拼音
  16. inet_ntoa() inet_aton()
  17. faster r-cnn训练、测试、检测(含批量检测图片)
  18. 阿里云计算重磅公布云原生裸金属方法:裸金属+容器,此方法解锁云计算的新方式
  19. Java微信开发以及对各种云的评价
  20. 程序员的必备网站 - 合集(找资源?看我一个就够了)

热门文章

  1. 分享127个ASP源码,总有一款适合您
  2. python颜色识别原理_python+opencv实现颜色检测、轮廓检测、颜色追踪
  3. 2022年全球新兴市场物流整体竞争力排名中国、印度、阿联酋列前三 | 美通社头条...
  4. 阿里云服务器新用户优惠
  5. java错误无法读取配置文件_解决Java Web项目无法读取配置文件问题
  6. 利用NoneBot结合酷q打造qq机器人
  7. 抛InterruptedException的方法
  8. opencv入门跟踪算法(3)之camshift
  9. 定制TortoiseSVN安装包
  10. Css之scoped (有作用域的 CSS)