吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 15154|回复: 32
收起左侧

[Python 转载] python爬取酷狗音乐播放地址

  [复制链接]
bbbbbd 发表于 2017-9-19 20:01
本帖最后由 bbbbbd 于 2017-9-19 21:28 编辑

最近在学python,无聊拿酷狗练了练手
运行环境:python 2.7

[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# -*- 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['FileName'],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[0].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[4],item[1])
        second = int(item[3])%60
        second = str(second) if second > 10 else '0'+str(second)
        print '歌名:'+str(item[0]),'专辑:'+ str(item[2]),'时长:'+str(int(item[3])/60)+':'+second,play_url
 
if __name__ == '__main__':
    main('梦然')


2017-09-19_200008.jpg

免费评分

参与人数 6吾爱币 +6 热心值 +6 收起 理由
Quincy379 + 1 + 1 用心讨论,共获提升!
cs001 + 2 + 1 谢谢@Thanks!
Yasin + 1 + 1 谢谢@Thanks!
Jamesstrange + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
lin_xop + 1 + 1 热心回复!
2205 + 1 + 1 记住我,一血热心值是我给的。

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| bbbbbd 发表于 2017-9-24 16:33
本帖最后由 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的音乐了,如果需要你去看一下


刚看了一下获取酷狗的320kbps也很简单, 只需要把这个参数总的item['FileHash']中的FileHash换成HQFileHash即可,不过有些音乐可能没有320的
chadd 发表于 2019-8-10 10:05
楼主提出如下:
print '歌名:'+str(item[0]),'专辑:'+ str(item[2]),'时长:'+str(int(item[3])/60)+':'+second,play_url
              ^
SyntaxError: invalid syntax
zz0147 发表于 2017-9-19 20:40
ggxxuser 发表于 2017-9-19 21:11
获取的是真实地址吗?
 楼主| bbbbbd 发表于 2017-9-19 21:30
ggxxuser 发表于 2017-9-19 21:11
获取的是真实地址吗?

嗯,是真实地址
打酱油的店小五 发表于 2017-9-19 21:43
正在在自学python,来看看
mywebzone 发表于 2017-9-19 22:14
函数顺序有点乱代码阅读起来比较费劲
chqsb123 发表于 2017-9-19 23:05
学到哪里才能做爬虫??请问?
 楼主| bbbbbd 发表于 2017-9-19 23:13
mywebzone 发表于 2017-9-19 22:14
函数顺序有点乱代码阅读起来比较费劲

不是专业的,业余爱好者
 楼主| bbbbbd 发表于 2017-9-19 23:16
chqsb123 发表于 2017-9-19 23:05
学到哪里才能做爬虫??请问?

基础知识+懂点http协议+抓包
hlink1021 发表于 2017-9-21 14:04
学习一下,谢谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-6-18 11:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表