Python利用BeautifulSoup4与Requests实现酷狗音乐下载

小石头
小石头
发布时间:2026-10-13| 6人浏览过
原创

本文介绍如何使用Python的BeautifulSoup4和Requests库爬取酷狗音乐。核心难点在于解析接口返回的Hash值以获取真实播放链接。代码通过正则表达式提取Hash和文件名,构造播放接口URL并解析JSON数据,最终将音频内容保存为MP3文件至本地目录。

酷狗音乐爬虫实现概述

本文详细讲解了如何利用Python的BeautifulSoup4库实现酷狗音乐的爬取与下载。文中提供了完整的示例代码,内容详实,对希望学习网络爬虫技术或需要批量获取音乐资源的读者具有较高的参考价值。

许多在线音乐平台的内容需要付费下载,利用爬虫技术可以在空闲时间自行获取资源。该脚本截至4月底运行正常,会自动将下载的音乐文件保存至当前运行目录,用户只需确保已安装bs4库即可使用。

环境配置与依赖安装

安装依赖库的命令如下:pip install beautifulsoup4

完整代码实现与解析

完整的Python代码示例如下,该脚本设计为可直接双击运行:

核心代码逻辑分析


from bs4 import BeautifulSoup
import requests
import re
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36'
}
url='https://songsearch.kugou.com/song_search_v2?&page=1&pagesize=30&userid=-1&clientver=&platform=WebFilter&tag=em&filter=2&iscorrection=1&privilege_filter=0&_=1555124510574'
#想要爬取别的网页直接修改这个json数据地址就行
r=requests.get(url,headers=headers)
soup=BeautifulSoup(r.text,'lxml')
title_list=soup.select('.pc_temp_songlist ul li')
hash=re.findall(r',"FileHash":"(.*?)"',r.text)
hash1=re.findall(r',"FileName":"(.*?)"',r.text)
#直接用正则匹配隐藏的数据
print(hash)
print(hash1)
q=0
for url in hash:
url_a=f'https://wwwapi.kugou.com/yy/index.php?r=play/getdata&callback=jQuery1910212680783679835_1555073815772&hash={url}&album_id=18784389'
#这个URL不用修改的
c=requests.get(url_a,headers=headers)
a=c.text[40:-3]
b=re.findall('"play_url":"(.*)","authors":',a)[0]
b1=re.sub(r"\\",'',b)
f = requests.get(b1)
with open(hash1[q]+'.mp3','wb')as d:
d.write(f.content)
print(hash1[q])
q+=1

关键难点:Hash值获取策略

爬取酷狗音乐的关键难点在于获取歌曲的Hash值。经过约一个小时的调试才找到正确方法,相比网易云音乐需要自行编写哈希生成函数,酷狗音乐接口中直接包含了Hash值,这使得数据提取更为便捷。

以上就是本文的全部内容,希望能为读者的学习和工作提供帮助,欢迎继续支持本站获取更多技术资源。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。