python爬虫80行代码拿下喜马拉雅有声书

Python爬虫实战案例:取喜马拉雅音频数据详解 前言 喜马拉雅是专业的音频分享平台,汇集了有声小说,有声读物,有声书,FM电台,儿童睡前故事,相声小品,鬼故事等数亿条音频,我最喜欢听民间故事和德云社相声集,你呢? 今天带大家爬取喜马拉雅音频数据,一起期待吧!! 这个案例的视频地址在这里 https://v.douyu.com/show/a2JEMJj3e3mMNxml 项目目标 爬取喜马拉雅音频数据 受害者地址 https://www.ximalaya.com/ 本文知识点: 1、系统分析网页性质 2、多层数.. 阅读详情

声明:本文仅作为学习爱好者编写,请勿商业和恶意攻击源网站,本文所有解释权归作者
本文没有使用爬虫框架,仅用了三个Python的常用库
本文适合新手参考,文章里面有大量注释为理解提供便利

# 爬喜马拉雅
import requests
from lxml import etree
import os
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",
    'Referer':'https://www.ximalaya.com/'
}
# 设置url 我们先搞第一页,注意默认p1是省略的               总歌单      单歌曲
# https://www.ximalaya.com/youshengshu/14968275/83332135
# 如果要爬取别的区块的内容,则修改下面的url就可以了
url = "https://www.ximalaya.com/youshengshu/p1/"
# 列表页函数
def listing(url):
    #直接请求
    response = requests.get(url=url, headers=headers).text
    # 生成解析对象
    etrees = etree.HTML(response)
    # 解析页面 获取当前页的歌曲地址
    page_listing_url = etrees.xpath('//div[@class="sound-list _yo5_"]/ul/li/div[@class="text _yo5_"]/a/@href')
    # 获取歌曲名称
    page_listing_name = etrees.xpath('//div[@id="anchor_sound_list"]/div/ul/li/div[@class="text _yo5_"]/a/span/text()')
    # 获取总的名字
    all_name = etrees.xpath('//div[@class="info _J460"]/h1/text()')[0]
    # 遍历歌曲url不是传到详情页 而是传到外链页   https://link.hhtjim.com/ximalaya/203837977.mp3
    file_path = "./%s/"%all_name
    if not os.path.exists(file_path):
        os.mkdir(file_path)
        for i,j in enumerate(page_listing_url):
            for k,v in enumerate(page_listing_name):
                if i == k:
                    # 分割i ,拿出歌曲id
                    song_id = j.split("/")[-1]
                    # 拼接路由
                    url = "https://link.hhtjim.com/ximalaya/" + song_id + ".mp3"
                    # 传给外链页url,返回歌曲内容
                    content = linking(url)
                    with open(file_path + v + ".mp3","wb") as f:
                        f.write(content)
                    print("%s,%s下载成功"%(all_name,v))
    # 获取下一页的列表,有下一页则递归
    next_url = etrees.xpath('//div[@class="pagination _yo5_"]/nav/ul/li[@class="page-next page-item _dN2"]/a/@href')
    if next_url:
        # 拼接路由
        url = "https://www.ximalaya.com" + next_url[0]
        # 递归调用
        listing(url)
    else:
        pass
# 外链页函数
def linking(url):
    response = requests.get(url=url,headers=headers).content
    return response
# 分类首页函数
def category_index(url):
    # 发送请求
    response = requests.get(url=url,headers=headers).text
    # 生成解析对象
    etrees = etree.HTML(response)
    # 解析页面 获取当前页的歌单地址
    # page_url_list = etrees.xpath('//div[@class="content"]/ul/li/div/a[@class="album-title line-1 lg bold _qie"]/@href')
    page_url_list = etrees.xpath('//div[@class="content"]/ul/li/div/a[@class="album-title line-1 lg bold _qie"]/@href')
    print(page_url_list)
    # page_name_list = etrees.xpath('//div[@class="content"]/ul/li/div/a/span/text()')
    # 获取之后遍历,直接把url传到列表页
    for i in page_url_list:
        # 拼接url传值    /youshengshu/25407248/   https://www.ximalaya.com/youshengshu/25407248/
        url = "https://www.ximalaya.com" + i
        listing(url)
    # 判断是否还有下一页   /youshengshu/p2/
    next_url = etrees.xpath('//div[@class="pagination-wrap"]/nav/ul/li[@class="page-next page-item _dN2"]/a/@href')
    if next_url:
        # 拼接路由
        url = "https://www.ximalaya.com" + next_url[0]
        # 递归调用
        category_index(url)
    else:
        pass
# 调用分类首页函数
category_index(url)
python爬取喜马拉雅vip音频_Python简易爬虫教程(三)--爬取喜马拉雅音频 上一篇我们重点介绍了如何把爬取到的图片下载下来。没错,如果你还记得的话,我们使用的是urlretrieve这个Python自带的下载模块。所以,到现在,爬虫框架的三个基本组成:获取网页,寻找信息,收集信息,我们已经学习完成。相信大家现在已经可以独立地编写自己的爬虫,爬取自己感兴趣的网站了。然而,随着不断实践,我们会发现,不是所有网站都是像我们前面爬取的搜狐新闻和新浪图片那样简单的。大部分网站,尤其... 阅读详情

相关推荐

Python爬虫入门教程15:音乐网站数据的爬取

PS:如有需要 Python学习资料以及 解答的小伙伴可以加点击下方链接自行获取基本开发环境💨Python 3.6Pycharm相关模块的使用💨import os安装Python并添加到环境变量,pip安装需要的相关模块即可。一、💥明确需求爬取某音乐网站的排行榜歌曲。二、💥网页数据分析1、F12或者鼠标右键点击检查打开开发者工具,点击播放音乐,下面会加载出音乐数据。

2401_84689803的博客 1322

Python喜马拉雅有声小说音频文件爬虫

今天爬取的是喜马拉雅有声小说。 目标网址:https://www.ximalaya.com/youshengshu/ 分析操作开始: 首先在喜马拉雅有声小说页面,播放任意音频。 当播放音频时,打开抓包工具(加载网页后打开抓包工具,发现没有抓到数据包,刷新网页就行),这边选择媒体Media,一般的视频,音频文件都会在这里被抓取到。 下图就是抓到的音频文件。 我们尝试访问一下该接口的url,将url复制到浏览器打开。 发起访问后,跳转出了一个保存文件到本地的界面。 我们选择保存,发现多了一个类型

地中海的博客 1万+

NLP工程实战指南:从动态技术选型到生产级落地

自然语言处理(NLP)作为人工智能的核心分支,其技术演进已从模型精度竞争转向工程可用性博弈。理解BERT、pQRNN、SMCalFlow等架构的底层原理,关键在于把握解耦性、部署就绪度与文档深度构成的技术成熟度三维坐标系;而DialogRE、FarsTail等数据集的价值,本质上是降低标注成本、提升领域迁移增益与保障Schema稳定性。在真实场景中,NLP不再是调参实验,而是涉及GPU显存优化、API延迟控制、跨轮指代消解、小语种形态归一化、对抗鲁棒性构建等系统性工程问题。本文聚焦NLP技术从新闻信号到CI

axfcjwkbi259888707的博客 432

【Python爬虫】Python爬取喜马拉雅,爬虫教程!

如果你对Python感兴趣,想要学习Python,希望可以帮到你,一起加油!以上是给大家分享的。

Python_trys的博客 4069

Python爬虫:批量下载喜马拉雅评书音频并保存本地

在本文中,我们将使用Python编写一个简单的网络爬虫来批量下载喜马拉雅评书的音频,并将其保存到本地。需要注意的是,本文中的代码仅提供了一个基本的框架,实际使用时还需要根据具体的情况进行一些调整和完善,例如解析评书页面的方法、获取音频文件名的方法等。运行以上代码,它将按照设置的评书ID列表,逐个下载评书音频文件,并将其保存到指定的文件夹中。下载完成后,它将在控制台输出相应的提示信息。在每次循环中,我们构造评书的URL,并发送HTTP请求获取评书页面的内容。然后,我们解析评书页面的内容,提取出音频的URL。

code88888的博客 1135

【信息科学与工程学】计算机科学与自动化——第三百零五篇 计算机系统中的各类运算操作01

编号类型领域运算操作运算类型算法算法的详细设计及数学分析参数列表及参数的数值设计应用场景 (100+条)集合运算​1集合运算关系代数并集 (Union)集合运算归并排序去重合并两个集合,去除重复元素。时间复杂度 O(n+m),n,m为两集合大小。输入:集合A, B。输出:A∪B。数据集成、多表结果合并、去重后的全量数据提取。2集合运算关系代数交集 (Intersection)集合运算哈希交集找出同时属于两个集合的元素。平均时间复杂度 O(min(n,m)),最坏 O(n*m)。输入:集合A, B。输出:A∩

weixin_49199313的博客 1387

Python3网络爬虫--爬取有声小说(附源码)

在第二个class为book的div标签中能得到小说简介、作者、播音。本次分析了一个有声小说网站,重点在于分析其小说详情页、音频播放地址,加密方式判断。思路、代码方面有什么不足欢迎各位大佬指正、批评!

懷淰メ的博客 4086

【小白必看】使用Python爬取喜马拉雅音频并保存的示例代码

本文介绍了如何使用Python中的requests库来获取音频文件并保存到本地。通过喜马拉雅平台的API接口,我们获取音频ID和名称,并构造音频地址。然后,通过发送HTTP请求将音频内容下载并保存到本地。首先,我们导入requests库,它是一个常用的HTTP请求库。然后,我们定义了一个获取音频ID列表的链接,并发送GET请求获取响应。通过解析响应的JSON数据,我们提取出音频的ID和名称,并将其存储在一个列表对象中。接下来,我们使用循环处理每个音频。我们构造了获取音频地址的链接,发送GET请求获取音频地址

全栈若城,专注知识分享 3676

Tomato-Novel-Downloader多格式导出电子书工具终极指南

本工具为技术爱好者提供完整的电子书获取解决方案,支持EPUB、TXT格式导出及有声内容生成功能。通过智能化的多线程下载和断点续传机制,实现了高效稳定的网络资源采集。 ## 核心亮点速览 - **双格式输出支持**:专业级EPUB格式与轻量TXT格式并行生成 - **智能断点续传**:基于SQLite的下载状态管理,支持任务中断恢复 - **语音合成集成**:基于Edge TTS引擎,支持17种

gitblog_01138的博客 723

基于EKF的UWB-IMU融合定位系统在农业机器人中的抗干扰优化与Matlab仿真

本文探讨了基于扩展卡尔曼滤波(EKF)的UWB-IMU传感器融合定位系统在农业机器人中的应用。通过Matlab仿真验证,该系统有效解决了农业环境中UWB信号遮挡和IMU累积误差问题,实现了厘米级高精度定位,显著提升了机器人在复杂场景下的抗干扰能力和导航可靠性。

numpy6sculptor的博客 622

unity 在透明物体上投射阴影

unity版本:2019.4.16 创建一个shader,代码如下: Shader "ChuckLee/ARShadow" { Properties { _ShadowColor("Shadow Color", Color) = (0.1, 0.1, 0.1, 0.53) } SubShader { Tags{ "RenderType" = "Transparent" "Queue" = "Geometry+1" } Blend SrcAlpha OneMinusSrcAlph

Abel02的博客 2953

番茄小说下载器:打造个人数字图书馆的智能解决方案

在数字阅读日益普及的今天,你是否曾为心爱的小说突然下架而遗憾?或者在地铁、飞机等网络信号不佳的环境下无法继续追更?fanqienovel-downloader 作为一款开源的番茄小说下载工具,为你提供了一套完整的本地化阅读解决方案。这款工具不仅能将喜欢的番茄小说永久保存在本地,还能实现多格式转换和智能管理,让你随时随地畅享阅读乐趣。 ## 为什么需要本地化小说管理? 传统在线阅读存在诸多痛点:

gitblog_00096的博客 381

虚幻UE 增强输入-触发器

输入触发器(UInputTrigger): 使用经过修饰器修改的输入值,或者使用其他输入动作的输出值,来确定是否激活输入动作。

UE成长之路,欢迎大家的关注! 5463

番茄小说本地保存完整指南:告别网络限制的阅读自由

你是否曾在地铁、飞机上,或是网络信号不佳的地方,突然无法继续阅读心爱的小说?或者担心喜欢的小说突然下架,再也找不到阅读资源?fanqienovel-downloader 正是为解决这些痛点而生的开源工具,让你能够将番茄小说永久保存在本地,随时随地畅享阅读乐趣。 ## 传统保存 vs fanqienovel-downloader:效率对比一目了然 | 对比维度 | 传统手动保存 | fanqie

gitblog_00564的博客 252

Xilinx FPGA平台DDR3设计保姆式教程(3)MIG IP核使用教程及DDR读写时序

干货来了,用DDR搬砖,只需要会用IP就好,Xilinx官方YYDS! ----------------------------------------------------------------------------------------------------------------- 汇总篇: Xilinx平台DDR3设计保姆式教程(汇总篇)——看这一篇就够了 ----------------------------------------------------------...

数字IC/FPGA杂货铺,找一找,或许有你想要的~ 2万+

MATLAB - Gazebo 联合仿真 —— 使用 UR10 机械臂检测和采摘水果

本示例演示如何在 Gazebo 物理模拟器中设置 Universal Robotics UR10 机械臂和仿真环境。您需要配置一个机器人从树上摘苹果的仿真环境。本示例演示如何利用这些工具箱,使用 Universal Robotics UR10 机械手模拟机器人检测并从树上摘取苹果。Robotics System Toolbox™ - 在 Simulink® 和 Gazebo 中对机械手进行建模、规划和模拟。Navigation Toolbox™ - 生成三维环境的占用图。

机器人控制与仿真应用 4182

番茄小说永久保存终极指南:3步构建你的个人数字图书馆

你是否曾为心爱的小说突然下架而烦恼?是否在无网络环境下渴望继续阅读?fanqienovel-downloader开源工具为你提供了一站式解决方案,让你轻松将番茄小说永久保存在本地,随时随地畅享阅读乐趣。 ## 📚 传统方式 vs 智能下载:效率对比一目了然 | 对比维度 | 手动复制粘贴 | fanqienovel-downloader智能下载 | |---------|----------

gitblog_00281的博客 229

视觉媒体通信作业记录(六)端到端的视频传输系统

将采集、编码、传输、显示各模块连接起来,形成一个端到端的视频通信系统,开发一个特色模块,将其加入系统;

weixin_45774698的博客 1967

番茄小说永久保存终极指南:3步打造个人数字图书馆

你是否曾经在地铁上、飞机上,或者网络信号差的山区,突然想读那本追了很久的小说,却发现没有网络?或者你收藏的某本小说突然从平台下架,再也找不到了?fanqienovel-downloader 作为一款开源番茄小说下载工具,为你提供了完整的解决方案,让你能够永久保存喜爱的番茄小说,随时随地畅享阅读乐趣,彻底告别网络依赖! ## 痛点场景:那些让你抓狂的阅读时刻 **小明的故事**:小明是个小说迷,

gitblog_00089的博客 229

STM32串口控制LED灯的亮灭

STM32中的串口控制LED灯的亮灭,分为两种方式,一种是直接发送数字0和1来控制灯的亮灭,另一种是通过发送字符串来控制。 我所使用的开发板主控芯片是STM32F401RET6,主频84MHz, 首先要进行串口的初始化: /* 函数功能:串口的初始化 函数名:Usart_Init 返回值:无 参数:u32 brr 备注: USART1_TXD->PA9 USART1_RXD->PA10 */ void Usart_Init(u32 brr) { float div; u16 div

博客 2万+

SAP-ABAP:SAP Open SQL 分页技术深度解析:语法、性能陷阱与最佳实践

SAP Open SQL 分页技术深度解析:语法、性能陷阱与最佳实践

baidu_35680696的博客 633

建议收藏丨适合大学生的100个兼职

建议收藏丨适合大学生的100个兼职

优快云_224022的博客 3226

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

番茄小说永久保存终极指南:免费开源工具轻松下载完整小说库

还在为番茄小说突然下架而烦恼吗?fanqienovel-downloader是一款开源小说下载工具,让你能够将喜欢的番茄小说永久保存在本地,随时随地畅享阅读乐趣。无论网络信号如何,你的小说库始终触手可及! ## 传统保存 vs 自动化方案:效率大比拼 在深入了解之前,先看看两种方式的显著差异: | 对比维度 | 传统手动保存 | fanqienovel-downloader自动化方案 | |

gitblog_00552的博客 236

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

文心一言内测真实体验:12类任务实操指南与5大提效生死线

大语言模型(LLM)并非万能工具,其实际效能高度依赖任务类型、提示词设计与使用边界。文心一言作为国产主流大模型,原生中文理解能力强,尤其在教育教案生成、用户话术优化、短视频口播润色等强语境任务中表现稳定;但在编程调试、实时信息检索、复杂逻辑推理等场景存在知识截止、幻觉频发、上下文丢失等典型局限。掌握‘角色-任务-约束’三锚点提示法、显性标尺控制、人工事实锚定、多轮对话索引管理等工程化用法,可显著提升输出可靠性。本文基于47天连续内测权限下的437条操作记录,聚焦内容创作、教育、电商等高频落地场景,提供可复用

a4512138的专栏 488

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

python喜马拉雅爬虫简单实现(超详细注释)

python实现喜马拉雅简单爬虫(超详细注释)

heiheT09的博客 3774

简单的网络爬虫-喜马拉雅音频爬虫

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。(来自百度百科) 网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫(General Purpose Web Crawler)、聚焦网络爬虫(Focused Web Craw...

superlchao的博客 7393
上一篇: python爬虫百行代码爬《励志一生》网站,破解BeautifulSoup乱码办法
下一篇: python爬虫scrapy框架爬取糗妹妹段子首页
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值