爬取网易云音乐个人动态中的视频(Ⅰ): 分析

前言

在某天下午, 我愉快的刷着云村哈哈, 很欢乐, 无意看到我所关注的一位 音乐人 说要下架他(她)所创作的所有电台, 我想着会不会以后动态里的视频也要删除呢? 刚好很久没有写过爬虫的代码了, 于是就有了这样的事儿. 


简单分析

因为是要将视频爬取下来, 而且粗略估计一个视频的时长大概5分钟不到, 网易云应该不会对视频进行分段, 所以最终的目标就是获取视频的链接.

按照一些爬虫教程所说, 思路大概可以这么概括: 观察网页的元素, 获取视频关键的id等信息, 分析网络请求(get或post一些什么信息), 对返回的信息进行一些存储的操作. 然而, 网易云音乐的网站基本是用<iframe>这个标签构建的, 简单的爬虫对其并不友好, 那么我们用selenium+phantomjs来解决这个问题就好了.

个人动态页面 为例, 通过对其的分析, 可以看出html标签中的自定义属性data-vid存放了视频的id, 如下图


在新的页面打开 视频, 可以看到地址栏的地址应为

http://music.163.com/#/video?id=5B0AF067CBB42F7789F7B97E13827565

通过播放视频, 分析网络请求, 可以看出这个视频是通过网易云自己的api来获取


这个 playurl?crsf_token= 看起来和我需要的东西有关系, 仔细瞧一瞧, 可以发现Request URL为 http://music.163.com/weapi/cloudvideo/playurl?csrf_token=

再来看看参数什么的


从上图的红框和Request URL可以推测这个是网易云的api

再来看看Response


上图的红框中的url就是视频的url, 而且还是超清(shd).


小结

最终思路是这样的:

  1. 用selenium+phantomjs在个人动态页面上获取所有的视频id(data-vid)
  2. 使用api去获取视频链接
  3. 保存链接等
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值