music-spider

上次的爬虫经验给了我非常良好的感觉(然而一些基本功能好像没完成?),最近找到了一首找了很久的歌,苦于没有下载连接(后证明只是没看见),这里记录如何将这首歌下载下来的探索历程

虾米音乐

网页查找链接

首先找到了虾米的网站,利用google chrome自带的开发者工具查看里面的内容:

然而这里调用了js代码,从这里我们似乎不能找到对应的链接的位置。加上我是一个web小白,完全不知道浏览器的这些js代码会出现在什么位置,所以我只能采用别的方法查找了。

数据包抓取

既然听歌的时候数据来自于网络,那么,这个音乐的数据必然会经过网络传输过来。加上一般网页都会将音乐文件缓存在本地,那么肯定在传输过程中有一个下载的过程。于是我们这里使用wireshark抓取一下传输的数据包。
首先确定了自己当前的ip地址为:

并且确定了虾米音乐的ip地址为:
140.205.220.98
然后在wireshark中使用指令: ip.addr == 140.205.220.98 找到相关数据:

http://www.xiami.com/song/playlist/id/1769139997/cat/json
注意这个箭头指向的数据包,可以看到在完成了tcp三次握手之后,立刻就收到了来自虾米的数据包*,并且这个数据包很有意思,从url中看是一个json,json里面传输了很多数据,会不会就包含了相关的音乐数据呢?然后这里进行相关数据查看:

仔细看这其中,有一个叫做
“filePath” 的属性!这个属性的下面会不会就是我们的音乐呢?下载了后发现的确是的!于是就成功的找到了虾米音乐的json存放的url**(虽然这个url下并没有VIP超高级音质的路径)
url中的/id/后方的数据就是一个文件的表示,所以通过修改这个数据,就能够接触到任意的json文件,实现直接下载!(好吧其实页面本身也提供了这个功能)