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实现求笛卡尔乘积的方法
Sep 16 Python
详解python单元测试框架unittest
Jul 02 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
Apr 16 Python
python selenium 查找隐藏元素 自动播放视频功能
Jul 24 Python
Win10+GPU版Pytorch1.1安装的安装步骤
Sep 27 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
Jul 01 Python
PyCharm 2020.2 安装详细教程
Sep 25 Python
利用django创建一个简易的博客网站的示例
Sep 29 Python
selenium判断元素是否存在的两种方法小结
Dec 07 Python
使用python操作lmdb对数据读取的实例
Dec 11 Python
python的scipy.stats模块中正态分布常用函数总结
Feb 19 Python
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
Jun 09 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从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
php+xml实现在线英文词典之添加词条的方法
2015/01/23 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
2016/11/15 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
javascript 贪吃蛇实现代码
2008/11/22 Javascript
使用JavaScript switch case 另类写法
2010/03/14 Javascript
只需20行代码就可以写出CSS覆盖率测试脚本
2013/04/24 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
2014/01/07 Javascript
jquery插件lazyload.js延迟加载图片的使用方法
2014/02/19 Javascript
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
JavaScript中的console.dir()函数介绍
2014/12/29 Javascript
浅析在javascript中创建对象的各种模式
2016/05/06 Javascript
简单谈谈JS数组中的indexOf方法
2016/10/13 Javascript
JavaScript中Array对象用法实例总结
2016/11/29 Javascript
vue-hook-form使用详解
2017/04/07 Javascript
vue-axios使用详解
2017/05/10 Javascript
nodejs实现截取上传视频中一帧作为预览图片
2017/12/10 NodeJs
vue.js实现带日期星期的数字时钟功能示例
2018/08/28 Javascript
vue+axios+element ui 实现全局loading加载示例
2018/09/11 Javascript
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
基于openlayers实现角度测量功能
2020/09/28 Javascript
详解JavaScript中的this指向问题
2021/02/05 Javascript
Ubuntu下创建虚拟独立的Python环境全过程
2017/02/10 Python
PyCharm安装第三方库如Requests的图文教程
2018/05/18 Python
python 穷举指定长度的密码例子
2020/04/02 Python
基于Python实现简单学生管理系统
2020/07/24 Python
莫斯科制造商的廉价皮大衣:Fursk
2020/06/09 全球购物
int和Integer有什么区别
2013/05/25 面试题
学校教师安全责任书
2014/07/23 职场文书
婚庆公司计划书
2014/09/15 职场文书
教师工作失职检讨书
2014/09/18 职场文书
2014年政工师工作总结
2014/12/18 职场文书
2015年医院药剂科工作总结
2015/05/04 职场文书
公司与个人合作协议书
2016/03/19 职场文书
又涨知识了,自律到底多重要?
2019/06/27 职场文书
python开发飞机大战游戏
2021/07/15 Python