2分钟下载付费音乐

loyals发行6周年,心血来潮,想在某云客户端下载用作铃声。点击下载,并不是选择音乐品质,而是弹出个这。
2分钟下载付费音乐
尼玛下个3分钟的歌还要收费啊。6年前也下过,明明不要钱的啊我凑=。=。。当然了付费时不可能付费的,就算打折也不会付费的。所以自己写个爬虫抓一下好了。

相较于前一阵写的大规模持续抓取的爬虫需要框架还要考虑翻页加载ajax挂代理等等等等。这种小爬虫的方式实现真的很简单。着实出于实用,大家能用上,所以这次把实现过程简单描述一下。

1.打开网易云,在搜索框输入歌名2分钟下载付费音乐

2.按f12进入右键检查进入开发者工具页面,并切换到network选项卡,我用的是chrome浏览器,其他浏览器选项卡显示的可能是网络,功能相同,并点击clear清除多余日志
2分钟下载付费音乐
3.按下播放按钮的一瞬间,点击stop停止继续加载请求(一定要点stop,不点会持续加载乱七八糟的get与post请求,眼力劲好的可以不点)
2分钟下载付费音乐
4.在左下角找到一个url?csrf_token文件,点击preview查看,这是一条json数据。点击data,点击0,翻到最下开头为url的数据,并保存冒号后的字段,不包括开头与结尾的冒号2分钟下载付费音乐2分钟下载付费音乐
5.然后拷贝以下代码到到文本文件中,保存并修改文件名为text.py

# -*- coding: utf-8 -*-
import requests

agent = {'User-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'}

class Download_music(object):
    def __init__(self,url):
        self.response = requests.get(url=url,headers=agent)

    def write_file(self):
        with open('music.txt','wb') as f:
            f.write(self.response.content)

if __name__ == '__main__':
    url = input('请输入url :  ')
    req = Download_music(url)
    req.write_file()
    print('抓取完成')

6.打开命令行,在指定的路径下运行该命令python test.py,并按下回车,弹出提示后贴上刚才从网页上复制的数据在按下亏车即可2分钟下载付费音乐
7.此时对应的路径下会生成一个文本文件,将后缀名改为mp4并保存,然后就能听了2分钟下载付费音乐
2分钟下载付费音乐
虽然获取到了想要的音频,但其实还有很多功能可以去实现,比如直接输入歌名就能发起一系列请求,完成下载,但由于时间关系没工夫研究倒数第二个url的get请求尾部的token信息去哪里寻找了。
这个思路同样的可以抓取一些不能下载的电影漫画等,只需在代码部分的稍作修改。
晚安.