吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

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

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

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

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

[Python] 纯文本查看 复制代码
# -*- 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, 2024-5-10 17:04

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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