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.pswp.cn/news/542246.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/542246.shtml
英文地址,請注明出處:http://en.pswp.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;以在一個六棱柱一端施加扭矩為實例…