1、Python下载酷狗音乐

1.1、前期准备

要有rquests、re、json包,如果不存在,先用pip install安装

1.2、分析

1.2.1、第一步

首先我们先进入首页并搜索你要查询的歌手,进入查询的页面,查看页面源代码,发现并没有这个列表数据,这里就不展示了,页面源代码没有发现想要的数据,那就来看network网络请求中的数据

1.2.2、第二步

打开网络请求,刷新页面,找到需要的请求



打开标头查看url中携带的数据



通过查看参数可知,不仅仅存在着我们搜索的内容,还有两个其它的参数callback_ 两个参数,这乍一看还挺懵的,想着是不是有什么脚本进行了加密什么的,后面通过测试,发现这两给参数是一个随机给出的随机值,将这两个参数固定修改搜索的歌手,发现能够查询到我们需要的内容。所有接下来可以进行我们的第三步

1.2.3、第三步

随便点击一首歌曲,进入听歌页面,发现还是老套路,在页面源代码中没有发现需要的MP3音乐文件,所有又需要看network网络请求中的数据



打开标头查看url中携带的数据



查看携带的参数,发现有很多,不过没事,通过分析可以发现只有hashalbum_id是变值,其它的都是跟第二步中的callback_ 这个参数一样,是可以固定下来的,我们只需关心hashalbum_id这两个参数

通过分析可以知道,第二步中的请求中有我们需要的这两个参数,如下



找到了要下载音乐的所有需要的东西,接下来可以进行我们的第四步

1.2.4、第四步

访问找的两个求,查看返回的数据信息

第二步的请求





通过分析发现hashalbum_id这两个参数存在song中所有我们需要将这个song给取出来

第三步的请求



通过分析发现mp3文件在data中,所有需要将data提取出来

至此所有的分析都完成了,可以直接上代码了

1.3、代码实现

import requests
import json
import re url = "https://searchrecommend.kugou.com/get/complex?callback=jQuery112409589811716312686_1626852436130&word=周杰伦&_=1626852436132" headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.70",
"referer": "https://www.kugou.com/"
}
resp = requests.get(url, headers=headers)
p1 = re.compile(r'jQuery.*?[({].*?"data":.*?"song":(.*?),"correctiontip"', re.S)
songs = re.findall(p1, resp.text)[0]
songs = json.loads(songs) for song in songs:
title = song['songname']
AlbumID = song['AlbumID']
song_hash = song['hash']
child_url = f"https://wwwapi.kugou.com/yy/index.php?r=play/getdata&callback=jQuery191053318263960215_1626866592344&hash={song_hash}&dfid=1tXkst0i97Rq4RW0pz15GjrP&mid=3196606d7d3ff0207a473da58e0b44b3&platid=4&album_id={AlbumID}&_=1626866592346"
child_resp = requests.get(child_url, headers=headers)
child_resp.encoding="utf-8"
obj = re.compile(r'jQuery.*?[({].*?"data":(.*?)}[)]', re.S)
child_song = re.findall(obj, child_resp.text)[0]
child_song = child_song.replace("\\", "")
child_song_src = json.loads(child_song)["play_url"]
child_song_resp = requests.get(child_song_src)
with open("音乐/"+title+".mp3", mode="wb") as f:
f.write(child_song_resp.content)
print(title+"下载完成!!!")
print("okok")

1.4、运行结果

下载周杰伦的歌,改变url去查询你喜欢的歌手



因为网页版只有20首歌,所以就只有这么多

在本地文件中查看



测试完成,歌曲下载成功

Python爬虫下载酷狗音乐的更多相关文章

  1. Python 应用爬虫下载酷狗音乐

    应用爬虫下载酷狗音乐 首先我们需要进入到这个界面 想要爬取这些歌曲链接,然而这个是一个假的网站,虽然单机右键进行检查能看到这些歌曲的链接,可进行爬取时,却爬取不到这些信息. 这个时候我们就应该换一种思 ...

  2. python爬取酷狗音乐排行榜

    本文为大家分享了python爬取酷狗音乐排行榜的具体代码,供大家参考,具体内容如下  

  3. 【Python3爬虫】下载酷狗音乐上的歌曲

    经过测试,可以下载要付费下载的歌曲(n_n) 准备工作:Python3.5+Pycharm 使用到的库:requests,re,json,time,fakeuseragent 步骤: 打开酷狗音乐的官 ...

  4. Java爬取并下载酷狗音乐

    本文方法及代码仅供学习,仅供学习. 案例: 下载酷狗TOP500歌曲,代码用到的代码库包含:Jsoup.HttpClient.fastJson等. 正文: 1.分析是否可以获取到TOP500歌单 打开 ...

  5. python爬取酷狗音乐

    url:https://www.kugou.com/yy/html/rank.html 我们随便访问一个歌曲可以看到url有个hash https://www.kugou.com/song/#hash ...

  6. Python代码搜索并下载酷狗音乐

    运行环境: Python3.5+Pycharm 实例代码: import requests,re keyword = input("请输入想要听的歌曲:") url = " ...

  7. Python爬虫:通过做项目,小编了解了酷狗音乐的加密过程

    1.前言 小编在这里讲一下,下面的内容仅供学习参考,切莫用于商业活动,一经被相关人员发现,本小编概不负责!读者切记切记. 2.获取音乐播放列表 其实,这就是小编要讲的重点,因为就是这部分用到了加密. ...

  8. python使用beautifulsoup4爬取酷狗音乐

    声明:本文仅为技术交流,请勿用于它处. 小编经常在网上听一些音乐但是有一些网站好多音乐都是付费下载的正好我会点爬虫技术,空闲时间写了一份,截止4月底没有问题的,会下载到当前目录,只要按照bs4库就好, ...

  9. 【python3】酷狗音乐及评论回复下载

    新年快乐,上班第一天分享一个python源码,功能比较简单,就是实现酷狗音乐的音乐文件(包含付费音乐)和所有评论回复的下载. 以 米津玄師 - Lemon 为例, 以下为效果图: 1.根据关键词搜索指 ...

随机推荐

  1. .NET平台系列14 .NET5中的新增功能

    系列目录     [已更新最新开发文章,点击查看详细] .NET5中不包含的内容 尽管 .NET5 框架中提供了一组重要 API,但它并不包括过去20年左右开发的所有 API,但是.NET Stand ...

  2. 如何查看app启动的activity

    adb 查看 使用adb shell 进入安卓的linux系统 拿QQ做例子: monkey -p com.tencent.mobileqq -v -v 1 #启动一次 启动页面为:com.tence ...

  3. C# 强行锁定 第三方 外部 应用程序窗体窗口的分辨率尺寸大小 禁止鼠标拖拽改变窗口大小

    我们也许会有一些奇怪的需求,比如说禁止一个外部程序的窗口大小更改. 如果我们没法修改外部程序的代码,那要怎么做呢? 当然,我们可以通过DLL注入目标程序的方式去Hook或registry一个事件来检测 ...

  4. 【Java面试真题】剑指Offer53.2——0~n-1中缺失的数字(异或、二分两种解法)

    [Java实现]剑指Offer53.2--0~n-1中缺失的数字:面试真题,两种思路分享 前面有另一道面试题[Java实现]剑指offer53.1--在排序数组中查找数字(LeetCode34:在排序 ...

  5. ieda引入jstl后报错解决办法

    报错如下: HTTP Status 500 - The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in ei ...

  6. 番外篇:搭建Windows环境下的RabbitMQ环境

    搭建Windows环境下的Rabbitmq环境 下载erlang语言包OTP.官网地址: https://www.erlang.org/downloads 如果下载不了,可以选择百度网盘下载,里面的版 ...

  7. Java持久层框架Mybatis入门

    MyBatis是什么 MyBatis是Java的持久层框架,GitHub的star数高达15.8k,是Java技术栈中最热门的ORM框架之一.它支持自定义SQL.存储过程以及高级映射,可以通过XML或 ...

  8. MySQL的启动选项和系统变量该如何配置?

    MySQL的配置信息可以通过两种方式实现,一种是命令行形式,在启动MySQL服务时后边带上相关配置参数,此种方式会在MySQL重启后失效.另外一种是通过写入配置文件,如my.cnf,启动或者重启MyS ...

  9. asp.net core配合vue实现后端验证码逻辑

    概述 网上的前端验证码逻辑总感觉不安全,验证码建议还是使用后端配合验证. 如果产品确定可以上网的话,就可以使用腾讯,百度等第三方验证,对接方便.但是产品可能内网部署,就必须自己写了. 本文章就是基于这 ...

  10. [非专业翻译] 高性能对象映射框架 - Mapster

    [非专业翻译] 高性能对象映射框架 - Mapster 系列介绍 [非专业翻译] 是对没有中文文档进行翻译的系列博客,文章由机翻和译者自己理解构成,和原文相比有所有不通,但意思基本一致. 因个人能力有 ...