python获取酷狗音乐top500的下载地址 MP3格式
作者:夜班机器人 发布时间:2021-05-06 04:38:05
标签:爬取,数据,python,酷狗音乐
下面先给大家介绍下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格网站的支持!
来源:https://blog.csdn.net/meinaozi/article/details/79955652


猜你喜欢
- session的本质使用cookie来实现。原理大概是:http 带来服务端提前设置 cookie,服务端拿到标示用户身份的cookie,
- 1、Matplotlib 简介Matplotlib 简介:Matplotlib 是一个python的 2D绘图库,它以各种硬拷贝格式和跨平台
- 开发目的这算是node应用的第二个小应用吧,主要目的是熟悉node和express框架。原理很简单:在node搭建的环境下引用第三方包处理图
- 之前用bash实现过(https://www.jb51.net/article/61943.htm),不过那个不能在windows下使用,所
- python的scipy.stats模块是连续型随机变量的公共方法,可以产生随机数,通常是以正态分布作为scipy.stats的基本使用方法
- os.systemsystem方法会创建子进程运行外部程序,方法只返回外部程序的运行结果。这个方法比较适用于外部程序没有输出结果的情况。im
- 下面的例子将结合项目实际运用来使用Jquery.TreeView,当然在使用控件树需要现在相应的js文件 下面就把我生成的TreeView展
- mutilprocess像线程一样管理进程,这个是mutilprocess的核心,他与threading很是相像,对多核CPU的
- vscode中安装ms-vscode.go插件后可以开启对go语言的支持,ms-vscode.go插件需要依赖一些工具,安装完成后提示goc
- URL 编码是什么东东呢?看看我从网上抄的定义: 引用: url编码是一种浏览器用来打包
- 本文实例为大家分享了python定时关机的具体代码,供大家参考,具体内容如下# coding: utf-8import sysimport
- 语法:Void header(string $string[,bool $replace=true [, int $http_respons
- 最近稍稍有点空闲时间,于是重新温习了一下之前学习过的python基础。废话不多说,记录一下自己的所得。首先,安装什么的不在本人的温习范围,另
- ini文件即Initialization File初始化文件,在应用程序及框架中常作为配置文件使用,是一种静态纯文本文件,使用记事本即可编辑
- class和id的命名,如果合理,可以使得文档具有清晰的结构我们现在解决办法就是使用现有的元素,通过给他们id或class而得到额外的信息。
- 在pycharm上依次选择打开File->settings->Editor->File andCode Templates
- 本文实例讲述了Python实现可自定义大小的截屏功能。分享给大家供大家参考,具体如下:蝈蝈这两天正忙着收拾家当去公司报道,结果做PHP的发小
- 你知道吗?实际上Python早在20世纪90年代初就已经诞生,可是火爆时间却并不长,就小编本人来说,也是前几年才了解到它。据统计,目前Pyt
- 在学习django的时候,想要实现登录失败后,进行用户锁定,切记录锁定时间,在网上找了很多资料,但是都感觉不是那么靠谱,于是乎,我开始了我的
- 01 目标假设我们要实现一个blog系统,在该系统中有以下两个结构体:type Category struct {