python 一键下载酷狗歌单

酷狗很多音乐下载都需要钱,于是我就想使用python进行爬取。在网上找了一圈,全是需要一首一首歌来找然后列出url。但是,谁又有耐心去找呢。于是我花了2小时写了这个脚本。

先贴项目地址:https://github.com/wind-lv/KGdownloadPC.git
由于最近忙,没写README

编写思路

流程

  1. 获取歌单
  2. 分析歌单
  3. 得出地址
  4. 下载歌曲

首先我们得知道:
酷狗要得出歌曲url需要两样东西:hash和key

http://trackercdn.kugou.com/i/v2/?a
ppid=1005&pid=2&cmd=25&behavior=play&hash={hash}&key={key}

key如何获取?
key是hash+'kgcloudv2’的加盐值。

key = hashlib.md5((hash+'kgcloudv2').encode('utf-8'
)).hexdigest()

现在就可以正式开始了。

1.获取歌单

使用酷狗客户端,分享链接到qq,然后在浏览器打开。第一时间ctrl+u看源代码。这太好爬了。全部hash值,以及歌名都在这里,而且是json。

我们可以使用re进行json与html的分离

js = re.findall('    var dataFromSmarty = (.*?),//>
当前页面歌曲信息',req,re.S)[0]

即可得出json。

2.分析歌单

很容易分析,这里就一笔带过

json[x]['hash']
json[x]['audio_name']

其中的 x 在下载中需要循环

3.得出地址

上面已经提过,链接由key和hash合成,这里就不多说。

该如何处理,自己思考,如果实在不会就参考我的代码(其实懒得打,不过这个很简单)

4.下载歌曲

已经得出歌曲url了,加入循环就行了,下载很轻易。
不过还得分析一下,直接贴出一个伪代码:

1.得出歌单
加入for循环:2.分析歌单3.得出地址4.下载歌曲

完结

效果图

小结

其实这个爬虫不难,含金量高的就key那部分了。
第一次写博客,还有不足多多原谅。
如果代码可以优化或者有bug可以联系我。

python 一键下载酷狗歌单相关推荐

  1. PHP爬虫音乐,PHPCrawl爬虫库实现抓取酷狗歌单

    爬虫是一个很有意思的功能,本文主要介绍了PHPCrawl爬虫库实现抓取酷狗歌单的方法,涉及PHPCrawl爬虫库的使用及正则匹配相关操作技巧,需要的朋友可以参考下,希望能帮帮助到大家. header( ...

  2. php获取酷狗mv播放链接,酷狗歌单获取歌曲信息的接口源码

    <?php /** *@authorYoungxj *@time2018年6月22日 *@todo利用酷狗歌单进行获取酷狗歌曲信息 */ // 访问短网址出现的地址 // http://m.ku ...

  3. python自动下载酷狗音乐_使用Python下载酷狗音乐

    使用Python+Selenium+Urllib下载酷狗歌曲 最近想下载一首歌,找了各大音乐平台,觉得在酷狗上下载更容易. 首先是获取原音频地址(本文以野狼disco为例),存储在标签里的src属性中 ...

  4. Python程序下载wyy音乐歌单/专辑

    网络上下载wyy的音乐的程序很多,我曾经使用过它们中的大部分,但或多或少都有点毛病.那这次就给大家推荐一个python的github仓库,可以批量下载歌单和专辑,完善了只能下载前10首的BUG 代码: ...

  5. python自动下载酷狗音乐_Python下载酷狗音乐

    #encoding=utf-8 import re import json import time import requests import os def search(song_name): & ...

  6. java爬取酷狗榜单歌曲信息并存入数据库

    这里只解析一下代码,所需工具jsoup.HttpClient httpCLient获取html后,用jsoup解析html,再用java来获取所需要的信息. 之前写的有点问题,今天改了一下.因为通过h ...

  7. 使用Python下载酷狗音乐

    使用Python+Selenium+Urllib下载酷狗歌曲 最近想下载一首歌,找了各大音乐平台,觉得在酷狗上下载更容易. 首先是获取原音频地址(本文以野狼disco为例),存储在<audio& ...

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

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

  9. 知乎有很多好玩的微信8.0状态视频,用Python一键下载

    微信 8.0 版本更新后,可以设置个人状态,状态里面可以添加火录制视频,很快状态视频就火了,可以看下知乎热榜有没有微信8.0状态沙雕又可爱的视频或图片?[1].比如我也设置了一个: 于是我就想把这些视 ...

最新文章

  1. vue修饰符 .lazy .number .trim
  2. 你知道Java 8 的方法引用吗
  3. 配置文件服务器实训报告,文件服务器的配置实训报告
  4. 如何从USB运行Windows 8 Developer Preview
  5. 简单的字谜游戏--可扩展--2015年7月25日14:58:00V1.1版
  6. 1、java中自己觉得重要的部分——未完待续
  7. 备战蓝桥杯(4)——第九届蓝桥杯嵌入式省赛赛题实战
  8. 利用canvas画钟表
  9. uniapp打包安卓APP生成自有证书的教程,简单实用
  10. 光电开关与光耦的区别 - 光电开关电子电路图
  11. 题解 P3387 【【模板】缩点】
  12. 安装CAD出现Error:1402
  13. Android 输入法框架流程整理
  14. 平面几何----用梅涅劳斯定解20年一道高三数学模拟题
  15. 人脸验证:DeepID(转)
  16. DGA - 研究内容整理
  17. 写大论文的一些注意事项
  18. Tiny4412——Android灯光系统
  19. linux中怎么卸载tree,Liunx系统命令中tree命令详解
  20. 无迹卡尔曼滤波UKF和容积卡尔曼滤波CKF进行锂电池SOC估计的C语言版本实现,和matlab版本一样包含定参和FFRLS两种情况

热门文章

  1. 如何用 Python 攻克「最强大脑」
  2. Mac中的番茄钟Just Focus——保持专注就对了
  3. 服务器定位cpu高占用率代码php,面试官:线上服务器CPU占用率高如何排查定位问题?,...
  4. activiti使用详解(一)
  5. NOIP2014提高组A.石头剪刀布
  6. NOIP2014提高组A.石头剪刀布(解题报告)
  7. windows安装虚拟机
  8. leetcode17题 电话号码的字母组合
  9. deepin系统没有声音的解决方法
  10. Beats:Beats 在 Kibana 中的集中管理