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中的with...as用法介绍
May 28 Python
Python切片索引用法示例
May 15 Python
使用Python监控文件内容变化代码实例
Jun 04 Python
python爬虫获取小区经纬度以及结构化地址
Dec 30 Python
在python中将字符串转为json对象并取值的方法
Dec 31 Python
face++与python实现人脸识别签到(考勤)功能
Aug 28 Python
python监控nginx端口和进程状态
Sep 06 Python
Python接口自动化判断元素原理解析
Feb 24 Python
numpy库reshape用法详解
Apr 19 Python
Python并发concurrent.futures和asyncio实例
May 04 Python
pytorch随机采样操作SubsetRandomSampler()
Jul 07 Python
Python中相见恨晚的技巧
Apr 13 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
防止MySQL注入或HTML表单滥用的PHP程序
2009/01/21 PHP
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
2014/06/21 Servers
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
2014/09/27 PHP
php强制更新图片缓存的方法
2015/02/11 PHP
php实现在限定区域里自动调整字体大小的类实例
2015/04/02 PHP
yum命令安装php7和相关扩展
2016/07/04 PHP
通过ifame指向的页面高度调整iframe的高度
2006/10/05 Javascript
Jquery知识点一 Jquery的ready和Dom的onload的区别
2011/01/15 Javascript
js中一维数组和二位数组中的几个问题示例说明
2014/07/17 Javascript
自己动手写的jquery分页控件(非常简单实用)
2015/10/28 Javascript
只要1K 纯JS脚本送你一朵3D红色玫瑰
2016/08/09 Javascript
jquery网页加载进度条的实现
2017/06/01 jQuery
js实现图片轮播效果学习笔记
2017/07/26 Javascript
学习jQuery中的noConflict()用法
2018/09/28 jQuery
微信小程序实现顶部下拉菜单栏
2018/11/04 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
2020/02/17 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
2020/07/31 Javascript
用Python编写简单的定时器的方法
2015/05/02 Python
python虚拟环境virtualenv的使用教程
2017/10/20 Python
python连接mongodb密码认证实例
2018/10/16 Python
Python Pexpect库的简单使用方法
2019/01/29 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
pyqt5 实现多窗口跳转的方法
2019/06/19 Python
python之mock模块基本使用方法详解
2019/06/27 Python
python使用装饰器作日志处理的方法
2019/07/11 Python
Python Multiprocessing多进程 使用tqdm显示进度条的实现
2019/08/13 Python
python 异步async库的使用说明
2020/05/04 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
2020/07/09 Python
实例讲解使用HTML5 Canvas绘制阴影效果的方法
2016/03/25 HTML / CSS
GAP美国官网:美国休闲时尚品牌
2016/08/26 全球购物
马来西亚在线购物:POPLOOK.com
2019/12/09 全球购物
《胖乎乎的小手》教学反思
2014/02/26 职场文书
拔河比赛新闻稿
2015/07/17 职场文书
Python基础之字符串格式化详解
2021/04/21 Python
Django REST framework 限流功能的使用
2021/06/24 Python
Python 多线程处理任务实例
2021/11/07 Python