python获取酷狗音乐top500的下载地址 MP3格式


Posted in Python onApril 17, 2018

下面先给大家介绍下python获取酷狗音乐top500的下载地址 MP3格式,具体代码如下所示:

# -*- coding: utf-8 -*-
# @Time : 2018/4/16
# @File : kugou_top500.py
# @Software: PyCharm
# @pyVer : python 2.7
import requests,json
headers={
 'UserAgent' : 'Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3',
 'Referer' : 'http://m.kugou.com/rank/info/8888',
 'Cookie' : 'UM_distinctid=161d629254c6fd-0b48b34076df63-6b1b1279-1fa400-161d629255b64c; kg_mid=cb9402e79b3c2b7d4fc13cbc85423190; Hm_lvt_aedee6983d4cfc62f509129360d6bb3d=1523818922; Hm_lpvt_aedee6983d4cfc62f509129360d6bb3d=1523819865; Hm_lvt_c0eb0e71efad9184bda4158ff5385e91=1523819798; Hm_lpvt_c0eb0e71efad9184bda4158ff5385e91=1523820047; musicwo17=kugou'
 }
def get_songs(url):
 res=requests.get(url,headers=headers)
 return res.text
def get_song_download_url(url):
 res=requests.get(url,headers=headers)
 res_tmp_list = json.loads(res.text)
 return res_tmp_list['data']['play_url']
def get_song_page_data(url):
 Song_Json = json.loads(get_songs(URL))
 Song_List_Json = Song_Json['data']['info']
 total = []
 for i in range(len(Song_List_Json)):
 song_download_url = "http://www.kugou.com/yy/index.php?r=play/getdata&hash=%s&album_id=%s&_=1523819864065" % (Song_List_Json[i]['hash'], Song_List_Json[i]['album_id'])
 song_data_dict = {'downloadUrl':get_song_download_url(song_download_url),'fileName':Song_List_Json[i]['filename']}
 total.append(song_data_dict)
 return total
for i in range(1,18):
 URL='http://mobilecdngz.kugou.com/api/v3/rank/song?rankid=8888&ranktype=2&page=%s&pagesize=30&volid=&plat=2&version=8955&area_code=1' % i
 page_list_data = get_song_page_data(URL)
 for j in range(len(page_list_data)):
 print "%s %s" % (page_list_data[j]['fileName'],page_list_data[j]['downloadUrl'])

效果

python获取酷狗音乐top500的下载地址 MP3格式

下面看下python--爬取酷狗TOP500的数据

python获取酷狗音乐top500的下载地址 MP3格式

你是不是也遇到不能完整爬取TOP500的数据,因为规律只在前几页有用,后面有小改动,所以中间跳转了,不是完整的TOP500。我换了个方向,爬取飙升榜100首(上面代码)。

希望酷狗给大家个机会哈,毕竟才100首影响不了多大。

from bs4 import BeautifulSoup
import requests
import time
headers={
 'User-Agent':'Mozilla/5.0 (Windows NT 6.1;WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3298.4 Safari/537.36'
}
def get_info(url):
 wb_data = requests.get(url,headers=headers)
 soup = BeautifulSoup(wb_data.text,'lxml')
 ranks = soup.select('span.pc_temp_num')
 titles = soup.select('div.pc_temp_songlist > ul > li > a')
 times = soup.select('span.pc_temp_tips_r > span')
 for rank,title,time in zip(ranks,titles,times):
 data= {
  'rank':rank.get_text().strip(),
  'siger':title.get_text().split('-')[0],
  'song':title.get_text().split('-')[1],
  'time':time.get_text().strip()
 }
 print(data)
#酷狗飙升榜100首
if __name__ == '__main__':
 urls = ['http://www.kugou.com/yy/rank/home/{}-6666.html?from=rank/'.format(str(i)) for i in
range(1,6)]
 for url in urls:
 get_info(url)
 time.sleep(2)

总结

以上所述是小编给大家介绍的python获取酷狗音乐top500的下载地址 MP3格,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python获取Linux系统下的本机IP地址代码分享
Nov 07 Python
python调用java模块SmartXLS和jpype修改excel文件的方法
Apr 28 Python
浅谈Python 中整型对象的存储问题
May 16 Python
Python中常用的内置方法
Jan 28 Python
Python Pandas中根据列的值选取多行数据
Jul 08 Python
python3 正则表达式基础廖雪峰
Mar 25 Python
Python + selenium + crontab实现每日定时自动打卡功能
Mar 31 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
Jun 30 Python
Python Merge函数原理及用法解析
Sep 16 Python
Pycharm安装python库的方法
Nov 24 Python
详解pycharm自动import所需的库的操作方法
Nov 30 Python
pandas apply使用多列计算生成新的列实现示例
Feb 24 Python
Python中的上下文管理器和with语句的使用
Apr 17 #Python
Python实现读取字符串按列分配后按行输出示例
Apr 17 #Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
Apr 17 #Python
Numpy掩码式数组详解
Apr 17 #Python
对numpy中布尔型数组的处理方法详解
Apr 17 #Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
Apr 17 #Python
python3库numpy数组属性的查看方法
Apr 17 #Python
You might like
php 表单数据的获取代码
2009/03/10 PHP
php调用c接口无错版介绍
2014/03/11 PHP
在win系统安装配置 Memcached for PHP 5.3 图文教程
2015/03/03 PHP
PHP函数func_num_args用法实例分析
2015/12/07 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
php文件后缀不强制为.php的实操方法
2019/09/18 PHP
js实现的点击数量加一可操作数据库
2014/05/09 Javascript
ExpressJS入门实例
2015/01/14 Javascript
javascript清空table表格的方法
2015/05/14 Javascript
javascript函数命名的三种方式及区别介绍
2016/03/22 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
Angular2 (RC4) 路由与导航详解
2016/09/21 Javascript
Vue中的v-cloak使用解读
2017/03/27 Javascript
详解A标签中href=""的几种用法
2017/08/20 Javascript
jQuery 1.9版本以上的浏览器判断方法代码分享
2017/08/28 jQuery
vue2.0在没有dev-server.js下的本地数据配置方法
2018/02/23 Javascript
Vue中axios的封装(报错、鉴权、跳转、拦截、提示)
2019/08/20 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
Vue export import 导入导出的多种方式与区别介绍
2020/02/12 Javascript
JS使用for in有序获取对象数据
2020/05/19 Javascript
[00:52]DOTA2第二届亚洲邀请赛预选赛宣传片
2017/01/13 DOTA
[02:40]2018年度DOTA2最佳新人-完美盛典
2018/12/16 DOTA
python删除过期文件的方法
2015/05/29 Python
Python Queue模块详细介绍及实例
2016/12/27 Python
python实现简单flappy bird
2018/12/24 Python
Python基础教程之if判断,while循环,循环嵌套
2019/04/25 Python
Python闭包装饰器使用方法汇总
2020/06/29 Python
使用django自带的user做外键的方法
2020/11/30 Python
一款简洁的纯css3代码实现的动画导航
2014/10/31 HTML / CSS
介绍下WebSphere的安全性
2013/01/31 面试题
Linux开机引导的步骤是什么
2015/10/19 面试题
师德师风建设方案
2014/05/08 职场文书
项目投资合作意向书
2014/07/29 职场文书
陕西导游词
2015/02/04 职场文书
Java中使用Filter过滤器的方法
2021/06/28 Java/Android