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 相关文章推荐
详解Django中的过滤器
Jul 16 Python
详解python3中zipfile模块用法
Jun 18 Python
Python制作动态字符图的实例
Jan 27 Python
Python的log日志功能及设置方法
Jul 11 Python
python判断一个对象是否可迭代的例子
Jul 22 Python
浅谈Tensorflow 动态双向RNN的输出问题
Jan 20 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
Feb 17 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
Feb 21 Python
Python3操作YAML文件格式方法解析
Apr 10 Python
Python字符串split及rsplit方法原理详解
Jun 29 Python
python 决策树算法的实现
Oct 09 Python
Python list去重且保持原顺序不变的方法
Apr 03 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简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
Yii框架日志记录Logging操作示例
2018/07/12 PHP
PHP正则验证字符串是否为数字的两种方法并附常用正则
2019/02/27 PHP
firefox中用javascript实现鼠标位置的定位
2007/06/17 Javascript
基于jquery的当鼠标滚轮到最底端继续加载新数据思路分享(多用于微博、空间、论坛 )
2011/10/10 Javascript
jquery实现弹出窗口效果的实例代码
2013/11/28 Javascript
12306验证码破解思路分享
2015/03/25 Javascript
jQuery实现磁力图片跟随效果完整示例
2016/09/16 Javascript
关于JS中二维数组的声明方法
2016/09/24 Javascript
JavaScript中this的四个绑定规则总结
2016/09/26 Javascript
Nodejs读取文件时相对路径的正确写法(使用fs模块)
2017/04/27 NodeJs
vue实现点击展开点击收起效果
2018/04/27 Javascript
详解CommonJS和ES6模块循环加载处理的区别
2018/12/26 Javascript
自定义Vue组件打包、发布到npm及使用教程
2019/05/22 Javascript
python回调函数的使用方法
2014/01/23 Python
深入解析Python中的lambda表达式的用法
2015/08/28 Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
2016/07/11 Python
Python AES加密实例解析
2018/01/18 Python
Python实现对一个函数应用多个装饰器的方法示例
2018/02/09 Python
pandas DataFrame数据转为list的方法
2018/04/11 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
Python两个字典键同值相加的几种方法
2019/03/05 Python
pyqt5 使用label控件实时显示时间的实例
2019/06/14 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
2019/08/06 Python
Python如何使用PIL Image制作GIF图片
2020/05/16 Python
python BeautifulSoup库的安装与使用
2020/12/17 Python
AmazeUI 输入框组的示例代码
2020/08/14 HTML / CSS
zooplus德国:便宜地订购动物用品、动物饲料、动物食品
2020/05/06 全球购物
中专三年学习的个人自我评价
2013/12/12 职场文书
工作说明书格式
2014/07/29 职场文书
小学国庆节活动总结
2015/03/23 职场文书
2016春节慰问信范文
2015/03/25 职场文书
统计员岗位职责范本
2015/04/14 职场文书
写给媳妇的检讨书
2015/05/06 职场文书
pytorch加载预训练模型与自己模型不匹配的解决方案
2021/05/13 Python