使用nodejs快速实现爬取QQ音乐资源(一个简单的爬虫)

今天给大家分享一个使用nodejs快速实现一个爬虫的一个小小教程

对于此教程建议由node基础的同学观看,所以我不会写太多关于node的使用哈
教程制作的爬虫功能就是爬取QQ音乐的资源哈,功能比较单一所以有点low的那种,见谅

  1. 首先我们登录QQ音乐的官方网站要登陆不然无法访问API QQ音乐官网 登陆进去哈
  2. 然后着手新建一个文件夹取名随意吧,然后进入这个文件夹
    npm使用 npm init yarn使用 yarn init 还有一个pnpm的具体就不知道怎么初始化了
  3. 初始化好了之后我们需要安装依赖的一些包了,分别是: superagent request
    键入命令
npm i superagent request

yarn 或者cnpm等等的自己安装哈
(还是建议大家使用yarn或者pnpm的来安装包,因为更快更方便,用的是yarn哈 附带一个安装方法很简单)

使用这条命令就可以轻松安装yarn或者pnpm等其他的包管理器了

npm i -g yarn

如果你的网速不好又不喜欢使用cnpm(淘宝镜像)请使用

npm config set registry=https://registry.npm.taobao.org

将npm的包仓库更换成淘宝的

  1. 好了准备工作完成之后就可以着手撸代码了首先我们就用最近非常火的一首歌《一曲相思》来进行演示吧
    首先进入QQ音乐官方然后进行搜索《一曲相思》


    image.png

    然后这首歌就出来了我们可以点击播放按钮就可以听了,好了点击播放吧(哈哈,当然不是听歌哈)
    然后我们进入播放界面 CTRL+shift+i 调出开发者工具 或者 f12哈
    目前就是这样了


    image.png

CTRL+R刷新一下,刷新之后就监听到了许多的请求我们直接过滤media出来,如下


image.png

然后直接单击最后一个条目,右键选择第一个 open in new tab 这个

image.png

不出意外的话就是这个样子,我们就已经将音乐源文件给它拿到手了,然后你懂得 右键音频另存为就将歌曲下载到本地了,是不是很简单!
。。。。。。。
难道爬虫就完了吗?不没有,我们一个代码还没撸呢怎么可能就这样完了,作为程序员的我们当然是希望计算机帮我们来获取这个歌曲啦,我们只需要提供歌曲名和歌手名就ok了
(上面的获取音乐方法对某些地方还是有点用处的,比如说网易云音乐的API都是进行加密处理的没办法就只能手动撸呗)

  1. 然后我们可以开始撸代码了,在此之前需要获取一下QQ音乐的API
    回到此界面调出开发者工具


    image.png

    然后刷新一下


    image.png

    经过我们的苦苦寻找终于找到QQ音乐请求的API (加快速度了)

然后直接上代码了
首先是要使用一个node一个自带的API----readLine进行编写


image.png

使用命令行的方式获取歌曲名和歌手名,然后请求对应的信息


image.png

其中API url就是上面我们审查出来的一个URL我们直接复制此URL改变w的词就行了


image.png

然后我们在浏览器中打开这个API发现我们需要的歌曲信息在data下的song下的list中不多不少刚好10个


image.png

然后就是观察我们需要的一些信息-------我们就可以使用如下代码列出歌曲
image.png

image.png

效果图


image.png

在编写代码的过程中发现根本就不需要输入歌手的名字,所以中途修改


image.png
  1. 然后我再进行进一步的处理,回到播放歌曲界面进行刷新


    image.png

    查看音乐API的参数是怎么来的,查看请求得到此url


    image.png

    我们右键新界面中打开,看到了许多的m4a的音乐文件不知道是个什么鬼( 猜测应该是浏览器做兼容的)
    但是不知道为什么都是m4a,当然,我们也不管它
    image.png

然后我们继续查看此url,通过decodeURL我们发现这么一个看不懂的东西


image.png

那么呢经过楼主的苦心寻找终于找到了机关所在


image.png

这就so easy了这个mid本身就告诉你了,我这里一曲相思的mid是002u0fTY2HoJJp然后就去前面一个歌曲信息API中寻找就行啦,然后音乐的mid就在一个mid属性里面
image.png

那我还能说啥直接干吧,继续撸代码
还记的最开始我说过的怎么通过开发者工具找音乐资源吗


image.png

我发现每一个音乐资源都有一个固定的前缀加上后面一大坨不认识的url,经过比对我发现


image.png

此API刚好有一个属性对齐音乐的资源文件,至于baseURL的话肯定就是


image.png

sip的0项啦,哈哈,好了该俺们大显神通的时候到了
image.png
image.png
image.png
image.png
image.png

最后来一个效果查看

image.png
image.png
image.png
image.png

最后想说的就是有什么问题也可以加我的QQ大家一起交流 : 3487492021 ---- 感谢

代码中间有删改,在下最主要分享的还是思考的方法应该怎样去解决这样一个问题,因为自己有些许改动所以最后附上代码源代码,如果对大家有所帮助的话可以给个收藏啊关注啊赞啊什么的,你的支持就是我最大的动力呢!

获取源码(密码:suiyue)

时间:2019年5月27日 17点54分

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,713评论 0 17
  • 春季适合吃桃这季节的美妙全在于那春桃一口一包吃掉可以吃到腹饱这是难得的骄傲因为春的美妙 但夏季日头似火在烧这个季节...
    李一十八阅读 2,540评论 0 0
  • 其实呢,我要做,我不要,和我想要,神经学原理上是由大脑前额皮质进化的。 前额皮质呢,是位于额头和眼睛后面的神经区,...
    彦泽听说阅读 1,839评论 0 0
  • 昏昏欲睡汤 这种汤可以作为安眠药,喝了它,你就会昏昏欲睡。 要注意喝美梦汤就会做好梦,(比如说进入糖果王国什么的)...
    小yoyo阅读 3,269评论 0 1
  • 很多人都是这样,活了大半辈子,都没有活明白,人生到底是为什么?晚上想想千条路,早上起来走原路。孔子讲得好:...
    一帘思语阅读 1,833评论 0 1