python爬取酷狗音乐播放地址
本帖最后由 bbbbbd 于 2017-9-19 21:28 编辑最近在学python,无聊拿酷狗练了练手{:301_1009:}
运行环境:python 2.7
# -*- coding:utf8 -*-
import sys
import requests
import re
import json
reload(sys)
sys.setdefaultencoding( "utf-8" )
#搜索获取音乐列表
def get_music_info(url):
response = requests.get(url)
return parse_music_info(response.text)
#解析音乐列表
def parse_music_info(html):
pattern = re.compile('{"SongName":.*?"Grp":.*?[]|}],"AlbumPrivilege":.*?}')
result = re.findall(pattern, html)
for item in result:
item = json.loads(item )
yield ,item['AlbumID'],item['AlbumName'],item['Duration'],item['FileHash']]
#跳转到每个歌曲的详细页面
def get_play_url(hash_id,album_id):
url = 'http://www.kugou.com/yy/index.php?r=play/getdata&hash='+hash_id+'&album_id='+album_id+'&_=1505738969338'
response = requests.get(url)
return parse_play_url(response.text)
#解析歌曲的播放地址
def parse_play_url(html):
pattern = re.compile('"play_url":"(.*?)"')
result = re.findall(pattern, html)
if result:
return result.replace('\\','')
#程序入口
def main(keyword):
url = 'http://songsearch.kugou.com/song_search_v2?callback=jQuery112405213552049562944_1505739248953&keyword='+keyword+'&page=1&pagesize=30&userid=-1&clientver=&platform=WebFilter'
# html = get_music_info(url)
for item in get_music_info(url):
play_url = get_play_url(item,item)
second = int(item)%60
second = str(second) if second > 10 else '0'+str(second)
print '歌名:'+str(item),'专辑:'+ str(item),'时长:'+str(int(item)/60)+':'+second,play_url
if __name__ == '__main__':
main('梦然')
本帖最后由 bbbbbd 于 2017-9-24 16:51 编辑
cs001 发表于 2017-9-24 16:04
谢谢楼主分离的python代码,但我发现抓取下来的都是128k的mp3,不知道能否抓取到320k的。。?
回头我看看吧,不过我的另外一个帖子抓取网易云的可以直接获取320kbps的音乐,只需要把源码中的一个参数改一下就行:{ids: "[' + str(id) + ']", br: 128000, csrf_token: ""}中的128000改为320000就可以获取到320kbps的音乐了,如果需要你去看一下{:301_998:}
刚看了一下获取酷狗的320kbps也很简单, 只需要把这个参数总的item['FileHash']中的FileHash换成HQFileHash即可,不过有些音乐可能没有320的 楼主提出如下:
print '歌名:'+str(item),'专辑:'+ str(item),'时长:'+str(int(item)/60)+':'+second,play_url
^
SyntaxError: invalid syntax 厉害。
学习一下。
获取的是真实地址吗? ggxxuser 发表于 2017-9-19 21:11
获取的是真实地址吗?
嗯,是真实地址{:1_1:} 正在在自学python,来看看 函数顺序有点乱代码阅读起来比较费劲 学到哪里才能做爬虫??请问? mywebzone 发表于 2017-9-19 22:14
函数顺序有点乱代码阅读起来比较费劲
不是专业的,业余爱好者{:1_1:} chqsb123 发表于 2017-9-19 23:05
学到哪里才能做爬虫??请问?
基础知识+懂点http协议+抓包{:301_998:} 学习一下,谢谢分享