【Python3爬虫】下载酷狗音乐上的歌曲
2018-08-26 17:31:54来源:博客园 阅读 ()
经过测试,可以下载要付费下载的歌曲(n_n)
准备工作:Python3.5+Pycharm
使用到的库:requests,re,json
步骤:
打开酷狗音乐的官网,输入想要搜索的歌曲(例如《天后》),然后回车搜索,得到如下页面:
右键检查或者按F12打开开发者工具,点击JS选项,查找到如下信息,FileName就是返回的歌手名和歌曲名信息,我们要将其提取出来:
由于这个网址返回的不是标准的json格式,所以要先进行如下处理,然后再转换成json格式:
res = requests.get(url).text
js = json.loads(res[res.index('(') + 1:-2])
提取到歌曲信息之后,我们输入一个序号代表要下载的歌曲序号,然后把歌曲下载下来就好了。
运行截图:
附上源码:
1 import requests
2 import json
3 import re
4
5
6 def get_song(x):
7 url = "http://songsearch.kugou.com/song_search_v2?callback=jQuery112407470964083509348_1534929985284&keyword={}&" \
8 "page=1&pagesize=30&userid=-1&clientver=&platform=WebFilter&tag=em&filter=2&iscorrection=1&privilege_filte" \
9 "r=0&_=1534929985286".format(x)
10 res = requests.get(url).text
11 js = json.loads(res[res.index('(') + 1:-2])
12 data = js['data']['lists']
13 for i in range(10):
14 print(str(i + 1) + ">>>" + str(data[i]['FileName']).replace('<em>', '').replace('</em>', ''))
15 number = int(input("\n请输入要下载的歌曲序号(输入-1退出程序): "))
16 if number == -1:
17 exit()
18 else:
19 name = str(data[number - 1]['FileName']).replace('<em>', '').replace('</em>', '')
20 fhash = re.findall('"FileHash":"(.*?)"', res)[number - 1]
21 hash_url = "http://www.kugou.com/yy/index.php?r=play/getdata&hash=" + fhash
22 hash_content = requests.get(hash_url)
23 play_url = ''.join(re.findall('"play_url":"(.*?)"', hash_content.text))
24 real_download_url = play_url.replace("\\", "")
25 with open(name + ".mp3", "wb")as fp:
26 fp.write(requests.get(real_download_url).content)
27 print("歌曲已下载完成!")
28
29
30 if __name__ == '__main__':
31 x = input("请输入歌名:")
32 get_song(x)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python day2-爬虫实现github登录 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash