爬虫如何获取onclick的链接_如何从网易云音乐的分享链接中获取分享者的用户信息...

f080c3e9ab3027758c0beb83099343a1.png

在朋友圈,我们经常会见到别人分享的网易云音乐链接。例如:

2c5476e9f26e78bcae9eca42daaa298e.png

那么,我们有没有可能仅通过这个链接,就获取到分享者的信息呢?

答案是有可能的。

闲话不多说,来看一看这究竟是怎么一回事吧。

2019 年 6 月 13 日更新

由于评论区有朋友反映写得有些简略,故添加了更多的细节,并介绍了有关在新浪微博上分享的些许区别。


网易云音乐分享链接

我们先来看一看网易云音乐的音乐分享链接拥有怎样的特点:

不管是在 PC 端,还是手机客户端,如果分享了一首歌曲,那么实际分享的链接(URL)一般是这个样子的:

https://music.163.com/song?id=aaaa&userid=bbbb

在这个网址中,“?”后面的内容是参数。不同的参数使用“&”符号隔开。所以,这里有两个参数,分别为(aaaa 和 bbbb 都表示一段数字):

id=aaaa
userid=bbbb

第一个 id=aaaa 是要分享的歌曲的编号,但是第二个 userid=bbbb 却莫名其妙地是歌曲分享者的用户 ID(为了统一,之后我们也会用 aaaa 表示歌曲的 id,bbbb 表示用户的 id)。

至于为什么一首歌的分享链接里面会带有分享者的用户信息,这就要去问网易云音乐的程序员了。但正是因为我们可以简单地从歌曲分享链接中直接找到用户的 ID,所以我们也就有机会找到这个用户的帐号了。

然后,我们再来看一看用户的主页链接是什么样子。我们随便在网易云音乐里面找一个用户(比如赵雷),点进其主页(注意,不是歌手页!),看一看网址:

5c0f8254b45ea5d12d8900e393b1d347.png
赵雷的个人主页(截止到2018/12/28下午)

对应的链接为:

https://music.163.com/#/user/home?id=93504818

显然地,网址后面的 id=93504818 这里指的就是用户的 ID 了。

注意:这里虽然是 id,但是和歌曲分享链接的 id 已经不是一回事了。因为这里是用户的 ID,所以这个 id 对应的是歌曲分享中的 userid。

所以,我们只需要把歌曲分享链接中的 userid 复制并替换掉上述网址中的相应内容,就可以找到分享者的主页了


在微信朋友圈实际操作

以 iPhone 手机为例。在朋友圈看到网易云音乐的分享链接后,点击进去,然后点击右上角,并选择下方的“复制链接”,就可以得到对应的链接。

e3dcf34cc09aeec80dd55e39fdc433bc.png
微信朋友圈的分享链接

链接形如:

https://music.163.com/m/song?id=aaaa&userid=bbbb&from=timeline&isappinstalled=0

这里可以看到,比前面说的参数多了两个,分别表示出处(timeline,应该是指朋友圈)和 APP 是否安装(is app installed)。仅关注我们需要的信息,我们可以轻松地看到用户的“userid”。接下来该怎么做不必多言。

顺便,如果是在 PC 客户端选择分享给微信好友,然后用弹出二维码并扫码的方式进行分享,链接中同样会包含“userid”。除此之外,第三个参数会变成 from=qr,即 QR 码(二维码)。

练习题

为了巩固你看到这里所学的内容,在这里出一个简单的测试题:

比如,你的好友张惠妹(开个玩笑)在朋友圈分享了她的歌曲《我最亲爱的》,然后你通过点开并复制链接,得到了如下的链接:

https://music.163.com/m/song?id=326784&userid=29879272&from=timeline&isappinstalled=0

然后,你通过查看赵雷的个人主页(再次强调,不是歌手页!),得知用户的个人主页链接形如:

https://music.163.com/#/user/home?id=93504818

那么,你可以找到张惠妹的个人主页了吗?快试试看吧!


其他发现

还有一种情况是,用户将歌曲分享到了新浪微博,那样更简单了,因为我们甚至都不需要关注链接长什么样子,直接点开就会看到歌曲上方的一行形如「XXX 分享给你了一首单曲」。我们直接就知道了分享者的昵称。

这时分享链接形如:

https://music.163.com/#/share/sina/direct/18/aaaa?userid=bbbb&haspic=0

这里我们保持和前面一样的写法,aaaa 表示歌曲的 id,bbbb 表示分享者的 id。

另外,歌曲 id aaaa 前面的数字 18 表示分享的音频的类型。比如 18 表示单曲,19 表示专辑,17 表示节目。一般都是单曲,所以不用修改。

这个网址看起来和前面的:

https://music.163.com/m/song?id=aaaa&userid=bbbb&from=timeline&isappinstalled=0

似乎很不一样,但是万变不离其宗,我们终归是能够从中轻易地获取到我们需要的 id 的。

不仅如此,我们完全可以修改这里的两个 id,来改变这条信息的内容。比如我们把 aaaa 改成歌曲《成都》的 id 436514312,把 bbbb 改成赵雷的 id 93504818,即:

https://music.163.com/#/share/sina/direct/18/436514312?userid=93504818&haspic=0
分享给你了一首单曲​music.163.com
0438fe3ebf3ed5f7b201ecfcdebd222f.png

4b667d5e2a7df496a6af31408f0a218e.png

是不是很有意思呢?


总结

所以,我们是完全有可能从网易云音乐的分享链接中获取分享者的用户链接的。但是为什么不是一定可以呢?

首先,如果用户没有在客户端登录(即“游客试用”),那么分享链接虽然依旧会包含一个“userid”,但是是无效的,会指向 404 网页。

其次,看过这篇文章后的一些朋友,或许会想办法提高自己的“安全意识”,从而不让别人追溯到自己的主页吧(笑)。

下次,想要得到暗恋的女生的网易云音乐主页,只需要让她随便推荐你一首歌即可(网易云音乐限定)。笔者不怎么使用 QQ 音乐和虾米音乐等,所以对于其他的音乐播放器的分享并不甚了解。如果有了解的朋友,欢迎在评论区补充。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值