文章目录

  • 1、Python爬虫案例下载音乐
    • 1.1、前期准备
    • 1.2、分析
      • 1.2.1、第一步
      • 1.2.2、第二步
      • 1.2.3、第三步
      • 1.2.4、第四步
    • 1.3、代码实现
    • 1.4、运行结果

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 reurl = "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爬虫爬取酷狗音乐TOP500

    Python大作业 内容简介: 用Python来爬取酷狗音乐TOP500的歌曲信息,统计这500首歌曲中出现的所有歌手,并做可视化处理生成词云 实验代码: import time import req ...

  2. python爬取酷狗音乐json数据为空_【Python3爬虫】下载酷狗音乐上的歌曲

    经过测试,可以下载要付费下载的歌曲(n_n) 准备工作:python3.5+pycharm 使用到的库:requests,re,json 步骤: 打开酷狗音乐的官网,输入想要搜索的歌曲(例如<天 ...

  3. python爬虫——爬取酷狗音乐top500(BeautifulSoup使用方法)

    酷狗音乐Top500 酷狗top500http://www.kugou.com/yy/rank/home/1-8888.html?from=rank 进入,并按F12打开开发者工具(本文以火狐浏览器为 ...

  4. python爬虫爬取酷狗音乐

    老规矩,代码先行 # -*- codeing = utf-8 -*- # @Time : 2021/2/25 13:17 # @Author : 老七疯狂吸氧 # @file 酷狗音乐.py # @S ...

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

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

  6. python爬虫-爬取酷狗音乐top榜

    酷狗音乐top500榜单就是我们今天需要爬取的对象,作为新手入门的代码,只需要将信息爬取下来即可,十分简单,不需要保存到数据库或保存到文件,仅当普通练习. https://www.kugou.com/ ...

  7. mac os平台使用python爬虫自动下载巨潮网络文件

    环境配置 选择python+selenium+wget+Safari的环境来下载文件,本来期望使用phantomjs,但使用时点击出的链接网页为空白网页,无法下载文件. 使用Safari时遇到的错误: ...

  8. 【Python爬虫项目】酷狗音乐附源码

    一.复制歌曲链接 二.F12启动开发者工具找到音频标签查看src属性 三.复制src属性进行搜索进行查看发现时音频文件 四.了解流程开始编写程序 代码: import requests from se ...

  9. BeautifulSoup编写PYTHON爬虫案例-下载名著小说

    爬虫背景 目的:爬取诗词名著网上的小说 网页:http://www.shicimingju.com/book/sanguoyanyi.html 分析过程: 1.查找当前页面多个章节的URL 2.打开每 ...

  10. 【爬虫实战项目】Python爬虫批量下载音乐飙升榜并保存本地(附源码)

    前言 今天给大家介绍的是Python爬虫批量下载音乐飙升榜并保存本地,在这里给需要的小伙伴们代码,并且给出一点小心得. 首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫,基本的是加请求头,但是 ...

最新文章

  1. massive_record exmple
  2. 汇编 debug调试没有执行对应文件源码指令---》失灵---》正确使用debug第一步
  3. leetcode 932. Beautiful Array | 932. 漂亮数组(分治法)
  4. 程序员学好英语的方法(转)
  5. iOS_GET_网络请求
  6. mysql 独享表空间_Mysql 独享表空间
  7. IAR模板--怎样在IARproject中创建和使用模板
  8. JS生成随机数并排序
  9. 基于图神经网络的推荐系统
  10. 只查看ett.txt文件(100行)内第20行到30行的内容
  11. 计算机图形学--动画与模拟
  12. 对菜鸟开发者的叮咛:花一万个小时练习 Coding,不要浪费一万小时无谓地 Debugging
  13. HDU - 6555 The Fool(思维)
  14. matplotlib中cmap与color参数的设置
  15. 网络图标出现小地球,但可以正常上网的解决方法
  16. Signature|privileged permissions not in privapp-permissions whitelist异常处理
  17. java图形化编程软件,看完跪了
  18. 2012年西安校园招聘会
  19. java多线程的优势
  20. 人间仙境 绵山水涛沟秋季美景

热门文章

  1. Java入门基础 安装并配置Java软件和JDK
  2. Hustoj mdui Web界面修改
  3. 软件设计原则之单一职责原则
  4. STM32入门——什么是STM32
  5. php可以用wamp哪个好,PHPWAMP好吗?phpwamp怎么用?PHPWAMP和其他集成环境有什么区别吗??...
  6. HP LaserJet P1108驱动安装
  7. [网站优化实战]公共CDN库/Nginx启用Gzip/全站CDN加速
  8. C#爬虫项目:SWorld阅读
  9. 在linux下使用IDE运行C语言
  10. 微信小程序锦鲤砍价 搭建教程完整版