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

下面先给大家介绍下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的数据

你是不是也遇到不能完整爬取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获取酷狗音乐top500的下载地址 MP3格式

本文地址: http://www.cppcns.com/jiaoben/python/225402.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/542246.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微商相册一直显示服务器偷懒,【小程序】微商个人相册多端小程序源码以及安装...

程序介绍学习node.js顺便接的400元单子,前后端都是自己写,相比自己以前写的,这次相对来说比较规范,用于个人相册展示,适合微商,有客服联系,无需后台管理系统,小程序上直接进行管理&a…

stl优先队列定义可以吗_C ++ STL | 用户定义的优先级队列比较器

stl优先队列定义>可以吗In this article, we are going to see how to write your comparator function for priority queue in C STL using the lambda function. This is going to help you certainly to use priority queue more widely when you may have skipped think…

python编程求三角形面积公式_python编程 输入三角形的三条边,计算三角形的面积\...

展开全部# -*- coding: UTF-8 -*-# Filename : test.py# author by : www.runoob.coma float(input(输入三角62616964757a686964616fe59b9ee7ad9431333433633338形第一边长: ))b float(input(输入三角形第二边长: ))c float(input(输入三角形第三边长: ))# 计算半周长s (a …

ipfs分布式存储网络服务器系统,IPFS分布式存储是什么意思 分布式云存储服务器详解...

一直以来,数据的安全性,存储的隐私性都是用户很重视的方面。基于此,再加上现在媒体对于分布式存储的疯狂报道,分布式存储一词再度涌入了大家的视野之中,接下来IPFS新说就为大家详解一下有关IPFS分布式存储的知识。VIPF…

c# 插入树形数据#_C#数据类型能力问题 套装1

c# 插入树形数据#This section contains aptitude questions and answers on C# data types (set 1). 本节包含有关C#数据类型(集合1)的能力问题和答案。 1) "int" is an alias of _________. System.Int16System.Int32System.Int64System.Byte Answer &…

python django框架怎么爬虫步骤_[Python爬虫]---Django视频教程

[↓↓↓资源简介↓↓↓]Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件…

小程序 || 语句_C ++开关语句| 查找输出程序| 套装1

小程序 || 语句Program 1: 程序1&#xff1a; #include <iostream>using namespace std;int main(){switch (printf("Hello World")) {case 0x09:cout << " India";break;case 0x0A:cout << " Australia";break;case 0x0B:co…

python爬虫与django_请问django和爬虫程序如何整合?

Django 模型是与数据库相关的&#xff0c;与数据库相关的代码一般写在 models.py 中&#xff0c;Django 支持 sqlite3, MySQL, PostgreSQL等数据库&#xff0c;只需要在settings.py中配置即可&#xff0c;不用更改models.py中的代码&#xff0c;丰富的API极大的方便了使用。本节…

Spark的枚举类型实例!scala的枚举。

Spark的枚举类型实例&#xff01;scala的枚举。Enumeration定义&#xff1a;[deploy] SparkSubmitAction { Value Value }Enumeration使用&#xff1a;appArgs. {SparkSubmitAction.> (appArgs)SparkSubmitAction.> (appArgs)SparkSubmitAction.> (appArgs) }转载于:…

c ++查找字符串_C ++类和对象| 查找输出程序| 套装5

c 查找字符串Program 1: 程序1&#xff1a; #include <iostream>using namespace std;class Sample {int X;int* PTR &X;public:void set(int x) const;void print();};void Sample::set(int x) const{*PTR x;}void Sample::print(){cout << *PTR - EOF <…

mysql8和5.7区别_mysql8.0与mysql5.7安全加密小差别

今天升级到了mysql8.0 做主从同步遇到下面问题2020-07-21T14:09:52.626718Z 13 [ERROR] [MY-010584] [Repl] Slave I/O for channel : error connecting to master slave_replication172.20.0.2:3306 - retry-time: 60 retries: 1 message: Authentication plugin caching_sha2…

c ++查找字符串_C ++类和对象| 查找输出程序| 套装3

c 查找字符串Program 1: 程序1&#xff1a; #include <iostream>using namespace std;class Sample {int X;public:void set(int x){X x;}void print(){cout << X << " ";}} A, B;int main(){A.set(10);B.set(20);A.print();B.print();return 0;…

时间轮

老早之前就听说时间轮算法特别高效&#xff0c;Linux内核都用的它&#xff0c;这两天抽空实现了遍……嗯&#xff0c;被差一bug搞死(~&#xffe3;▽&#xffe3;~) 啊哈 网上扣来的图&#xff0c;原理好懂&#xff1a;轮子里的每格代表一小段时间&#xff08;精度&#xff09;…

qc35 说明书_使用Bose QC35 2年的心得 | 迟而不迟的深度体验 | 文附佩戴效果照片...

小编注&#xff1a;此篇文章来自即可瓜分10万金币&#xff0c;周边好礼达标就有&#xff0c;邀新任务奖励无上限&#xff0c;点击查看活动详情创作立场声明&#xff1a;本文所测商品为自费购入&#xff0c;我会在文中点明。坚持来自内心的主观评测是起码的底线&#xff0c;不会…

threadgroup_Java ThreadGroup类的checkAccess()方法和示例

threadgroupThreadGroup类的checkAccess()方法 (ThreadGroup class checkAccess() method) checkAccess() method is available in java.lang package. checkAccess()方法在java.lang包中可用。 checkAccess() method is used to check whether the currently running thread h…

qt tab弹出特效_Nuke Studio 12(影视特效合成软件)中文版分享

Nuke 12是一款功能强大&#xff0c;世界知名的影视后期特效合成软件。NUKE是一个获得学院奖(Academy Award)的数码合成软件。已经经过10年的历练&#xff0c;为艺术家们提供了创造具有高质素的相片效果的图像的方法。NUKE无需专门的硬件平台&#xff0c;但却能为艺术家提供组合…

c ++ 链表_C ++程序查找两个单个链表的并集

c 链表Problem statement: Write a C program to find the union of two single linked lists. 问题陈述&#xff1a;编写一个C 程序来查找两个单个链表的并集。 Example: 例&#xff1a; Let the first linked list be:5->4->3->6->1->NULLLet the second l…

精华版线段树模板

哈哈哈&#xff0c;打了一上午。。。#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> using namespace std; typedef long long ll; ll a[10000010]; ll lazy[1000000]; …

【转】unity地形插件T4M使用帮助

unity的地形系统在手机游戏中因为效率问题基本无法使用&#xff0c;只能通过T4M这个地形插件来进行优化制作。下面大概讲解一下使用流程及方法。 先中U3D里面用自带的地形系统刷出想要的地形和贴图。贴图可以大概刷一下。后面要重新刷。 用导出脚本ExportTerrain.js导出地形为O…

ansys添加力矩_ANSYS软件中施加扭矩的方法

ANSYS软件中施加扭矩的方法胡意立&#xff0c;孙明礼&#xff0c;沈燕青&#xff0c;周佳杰&#xff0c;胡林强【摘要】在机械结构的有限元分析中&#xff0c;常会遇到施加扭矩的问题。文中探讨了在ANSYS软件中施加扭矩的一种方法&#xff0c;以在一个六棱柱一端施加扭矩为实例…