#encoding=utf-8

import re

import json

import time

import requests

import os

def search(song_name):

"""搜索歌曲"""

search_url = "https://songsearch.kugou.com/song_search_v2?callback=jQuery112405132987859127838_{}&page" \

"=1&pagesize=30&userid=-1&clientver=&platform=WebFilter&tag=em&filter=2&iscorrection=1&privilege_fil" \

"ter=0&_={}&keyword={}".format(str(int(time.time()*1000)), str(int(time.time()*1000)), song_name)

obj = requests.get(search_url)

start = re.search("jQuery\d+_\d+\(?", obj.text)

data = json.loads(obj.text.strip().lstrip(start.group()).rstrip(")"))

return data['data']['lists']

def download(song_list, dir):

"""下载歌曲"""

# 展示前十个搜索结果

for i in range(10):

print(str(i + 1) + " >>> " + str(song_list[i]['FileName']).replace('', '').replace('', ''))

num = int(input("\n请输入您想要下载的歌曲序号:"))

print("请稍等,下载歌曲中...")

time.sleep(1)

file_hash = song_list[num - 1]['FileHash']

url = "http://m.kugou.com/app/i/getSongInfo.php?cmd=playInfo&hash={}".format(file_hash)

obj = requests.get(url)

data = obj.json() # json格式

download_url = data['url']

file_path = ''

try:

if download_url:

file_name = str(song_list[num - 1]['FileName']).replace('', '').replace('', '')

file_path = os.path.join(dir, ' - '.join(file_name.split(' - ')[::-1]) + ".mp3")

with open(file_path, "wb")as fp:

fp.write(requests.get(download_url).content)

print("歌曲已下载完成!")

else:

print("无此歌曲链接")

except Exception as e:

if os.path.exists(file_path):

os.remove(file_path)

print(e)

if __name__ == '__main__':

# 下载歌曲存放目录

dir = "music"

while True:

try:

# 搜索歌曲

song_list = search(input("请输入您想要搜索的歌曲名称:"))

# 下载歌曲

download(song_list, dir)

except Exception as e:

print(e)

pass

python自动下载酷狗音乐_Python下载酷狗音乐相关推荐

  1. python下载文件暂停恢复_python下载文件记录黑名单的实现代码

    具体代码如下所示: #!/usr/bin/python # -*- coding: GBK -*- # -*- coding: UTF-8 -*- from ftplib import FTP imp ...

  2. python urllib下载文件怎么停止_python下载文件的三种方法

    Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件.此外Python还提供了另外一种方法 ...

  3. python爬去百度音乐_Python抓取百度音乐。

    今天挑战下百度音乐抓取,先用Chrome分析下请求的链接. 最关键的就是这个链接 http://play.baidu.com/data/music/songlink 请求这个带上songid就能返回给 ...

  4. Python自动检测Chrome浏览器版本号并下载对应驱动文件[chromedriver.exe]

    说明 实现原理是当使用的chromedriver.exe与当前Chrome浏览器版本不一致时会抛出异常,在异常信息中会包含当前Chrome版本信息和Chrome浏览器安装地址信息,通过捕获异常信息,正 ...

  5. python表白源代码加音乐_python炫酷烟花表白源代码

    天天敲代码的朋友,有没有想过代码也可以变得很酷炫又浪漫?今天就教大家用Python模拟出绽放的烟花,工作之余也可以随时让程序为自己放一场烟花秀. python炫酷烟花表白源代码 这个有趣的小项目并不复 ...

  6. python抖音表白程序代码_python 下载抖音视频示例源码

    [实例简介] 下载抖音视频 [实例截图] [核心代码] #code:utf-8 import requests from bs4 import BeautifulSoup import json se ...

  7. python 下载图片无法打开_python下载的图片不显示,无法查看

    代码是这样的: import urllib2 import re import urllib url ="http://www.zhangzishi.cc/20151004mt.html&q ...

  8. python中msg是什么意思_python下载.msg文件的附件

    def get_attachments(file_name, path_name): """ 获取.msg文件内的附件 :param file_name: .msg文件路 ...

  9. python自动获取某网站二次元图片下载

    import sys import time import os import requests import re # 正则表达式,进行文字匹配 from bs4 import BeautifulS ...

最新文章

  1. oracle基础琐碎总结-----Where和Having的区别与联系
  2. 如何成为一名合格的推荐系统工程师?
  3. java 随机数 【指定范围】
  4. 对图片进行压缩,水印,伸缩变换,透明处理,格式转换操作
  5. 让自己开发的Web应用程序与SharePoint共存
  6. 使用 Gitolite 搭建 Git 服务器
  7. 画出多项式的硬件编码_信息论与编码习题解答.doc
  8. Kafka自动提交offset设置
  9. 【Linux】shell命令总结
  10. linux不停机释放日志,Kafka在线修改topic日志保存时长(不停机,不重启)
  11. 结晶器或者连铸--流场-温度场-凝固--夹杂物计算说明
  12. 手机12306买卧铺下铺技巧_12306订下铺有什么技巧?
  13. Mysql自增主键用完了怎么办
  14. AS打包V1和V2签名,使用乐固加固安装包签名有误 ShieldCode = 40186
  15. python当前时间加一分钟_Python实现的当前时间多加一天、一小时、一分钟操作示例...
  16. 芯片组:北桥芯片和南桥芯片
  17. iOS App Store 上传项目报 隐私政策网址(URL)!~解决方法
  18. LeetCode575
  19. PTA(三十)面向对象程序设计 第五章 作业 7-1 复数的比较 (30 point(s))
  20. 解析机智云MCU源码

热门文章

  1. pytorch中torch.mul、torch.mm/torch.bmm、torch.matmul的区别
  2. 一零四、大数据可视化技术与应用实训(展示大屏幕)
  3. oracle中的表别名怎么,Oracle 表别名
  4. 2021年教你增加拿到BAT等大厂offer几率,分享PDF高清版
  5. shell 四种循环详解
  6. 【奥斯卡理财星体系 第五章】丨手把手教你从零开始搭建资产配置
  7. 螺栓、螺柱、螺钉的分类
  8. php怎么安装ecshop,ECSHOP4.0安装教程【ECSHOP4.0安装流程方法】ECSHOP4.0安装步骤-ECSHOP教程网...
  9. FairyGUI按钮动效的混用
  10. 不要在翻译中迷失:如何进行网站本地化-20150105早读课