【Python3爬虫】下载酷狗音乐上的歌曲
2018-08-23 15:52
309 查看
经过测试,可以下载要付费下载的歌曲(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)
相关文章推荐
- Python爬虫——利用新浪微盘下载周杰伦的歌曲(共190首)
- Python爬虫下载QQ音乐网站歌曲
- Python爬虫学习记录(3)——用Python获取虾米加心歌曲,并获取MP3下载地址
- [python][爬虫]暴漫gif下载
- 一、python爬虫程序入门(图片下载)
- Python3爬虫下载pdf(一)
- Python爬虫个人记录(二) 获取fishc 课件下载链接
- python开发爬虫----urllib2下载网页方法
- Python网络爬虫实战案例之:7000本电子书下载(2)
- python 爬虫(二)一个带下载进度的网页抓取小爬虫
- Python 网络爬虫 006 (编程) 解决下载(或叫:爬取)到的网页乱码问题
- Python 3 爬虫之批量下载字帖图片
- Python多线程爬虫获取电影下载链接
- Python简单网页爬虫——极客学院视频自动下载
- python爬虫-->并发下载
- python爬虫实战:利用scrapy,短短50行代码下载整站短视频
- Python爬虫之多线程下载豆瓣Top250电影图片
- python爬虫自动搜索下载游民今日搞笑图集
- python实例2-写一个爬虫下载小功能