跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python算法

Python 爬虫实战:爬取网易云音乐热歌榜歌曲

Python 爬虫技术通过发送 HTTP 请求获取网页数据,利用正则表达式解析 HTML 提取歌曲 ID 和标题,进而调用接口下载音频文件。演示了使用 requests 库和 re 模块爬取网易云音乐热歌榜并保存 MP3 的过程,涉及基础爬虫原理、DevTools 抓包分析及合规性注意事项。

SecGuard发布于 2026/3/28更新于 2026/8/1741 浏览
Python 爬虫实战:爬取网易云音乐热歌榜歌曲

前言

网络爬虫(Web Crawler),也称为网页蜘蛛(Web Spider)或网页机器人(Web Bot),是一种按照既定规则自动浏览网络并提取信息的程序。爬虫的主要用途包括数据采集、网络索引、内容抓取等。

爬虫的基本原理

  1. 种子 URL:爬虫从一个或多个种子 URL 开始,这些 URL 是起点。
  2. 发送请求:爬虫向这些种子 URL 发送 HTTP 请求,通常是 GET 请求。
  3. 获取响应:服务器返回网页的 HTML 内容作为响应。
  4. 解析内容:爬虫解析 HTML 内容,提取所需的数据(如文本、链接、图片等)。
  5. 提取链接:从网页中提取出所有链接,并将这些链接加入待访问队列。
  6. 重复过程:爬虫重复上述步骤,直到达到某个停止条件,如爬取了一定数量的页面,或所有页面都被爬取完毕。

爬虫的分类

  1. 通用爬虫
    • 设计用于抓取整个互联网的大量网页。搜索引擎(如 Google、Bing)的爬虫就是通用爬虫。
  2. 聚焦爬虫
    • 专注于特定主题或领域,抓取相关网页。比如,一个新闻爬虫只抓取新闻网站的内容。
  3. 增量爬虫
    • 仅抓取自上次爬取以来发生变化或更新的网页,适用于动态内容更新频繁的网站。

爬虫的合法性和道德

在编写和运行爬虫时,必须遵循以下原则:

  1. 遵守网站的 robots.txt:
    • 大多数网站都有一个 robots.txt 文件,规定了哪些页面允许被爬取,哪些不允许。爬虫应当尊重这些规则。
  2. 避免过度抓取:
    • 设置适当的抓取频率,避免对服务器造成过大负担。
  3. 尊重版权和隐私:
    • 不应抓取或使用受版权保护的内容,或涉及用户隐私的数据。
  4. 获取许可:
    • 在某些情况下,最好获得网站管理员的许可,特别是当你打算频繁地抓取大量数据时。

通过以上方法和原则,可以编写高效、可靠且合规的网络爬虫来满足数据采集的需求。

侦察

打开页面

文章配图

F12 检查定位关键元素

文章配图

在网络面板刷新页面

文章配图

搜索关键字

文章配图

查看在页面中的渲染情况是不是我们想要的数据,可以看到这里列出了 200 首歌那么就是的

文章配图

在标头中确定数据来源地址及请求方法

文章配图

源代码

import re
import os
import requests

filename = 'music\\'
if not os.path.exists(filename):
    os.makedirs(filename)

url = 'https://music.163.com/playlist?id=3778678'
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36'
}

response = requests.get(url, headers=headers)
html_data = re.findall(r'<li><a href="/song\?id=(\d+)">(.*?)</a>', response.text)

for num_id, title in html_data:
    music_url = f'https://music.163.com/song/media/outer/url?id={num_id}.mp3'
    music_content = requests.get(music_url, headers=headers)
    with open(filename + title + '.mp3', 'wb') as f:
        f.write(music_content.content)
    print(num_id, title)

项目效果

文章配图

目录

  1. 前言
  2. 侦察
  3. 源代码
  4. 项目效果
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 智能家居数据可视化:5 个维度构建专业级 Home Assistant 仪表板
  • LazyLLM 测评 | 低代码颠覆 AI 开发!代码专家智能体进阶模块实战
  • Python PyQt6 桌面应用开发实战指南
  • 腾讯云开发 Copilot 低代码开发体验与技术分析
  • AI 辅助钱包开发:智能生成合约交互与监控脚本
  • OpenClaw 30+ 真实场景全拆解:AI Agent 落地实践指南
  • 在飞书中接入 OpenClaw 打造专属 AI 助手
  • AI 绘画精讲与 AIGC 时代游戏美术设计
  • ESP32 对话机器人:整合 Coze 大模型与百度千帆 ASR/TTS
  • GitNexus 核心引擎架构与流程深度解析
  • 商汤开源 SenseNova-MARS 模型:实现多模态搜索推理新突破
  • LIBERO:面向终身机器人学习的综合基准数据集
  • 前端静态站点生成(SSG)技术解析
  • MySQL 数据类型详解
  • Java 异常处理:核心原理与实战最佳实践
  • MySQL 事务:从基础概念到隔离性理论与实践
  • AI 辅助 Android Studio 快速搭建 WebView 项目模板
  • Web 开发者转型 AI 实战:基于 Agent 的代码质量分析 Skill 开发指南
  • 单链表综合练习:删除指定节点、反转与查找中间节点
  • VS Code 选择正确解释器但终端仍显示旧 Python 版本问题排查

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online