前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >收益3583万?我是如何快速统计「李子柒」YouTube频道视频累计播放量并计算收益的

收益3583万?我是如何快速统计「李子柒」YouTube频道视频累计播放量并计算收益的

作者头像
古柳_DesertsX
发布2020-09-01 15:28:06
1.8K0
发布2020-09-01 15:28:06
举报
文章被收录于专栏:Data Analysis & VizData Analysis & Viz

一桩开心事

上一篇文章「年更博主冒个泡,或将开启可视化之旅」发布后,看到有人评论“催更催更,等下一篇”、“失踪人口回归”,还是挺开心的,没想看居然还有人看,不由感慨「终于等到我,还好你们没放弃」,doge。

这次重新开始更新也顺带建了个交流群,目前群里人还不多,但很惊喜的是,有位「在美可视化爱好者」对我上篇文章里涉及的 data viz 领域的创作者如 Nadieh Bremer/Shirley Wu/Amelia Wattenberger,以及 datasketch 等项目都很了解,而且他还告诉我 D3.js v6 出了,后来我也上推特看到了,并看了下 GitHub 更新说明:Changes in D3 6.0

国内搞D3.js可视化的人感觉并不多,没想到能这么快找到同好,也是桩开心事。

其实很简单,真的值得分享吗?

这回想分享的是之前学到的一个「骚操作」,可以快速的对网页数据进行处理计算。

对懂技术的人来说,自然很简单不值一提,不同技术背景的人可能也会有不同的实现方式。

要是搁以前,估计我也不会专门写这类文章......所以我就鸽了14个月没更新,doge,(这个自黑的梗倒是蛮好用)。

但最近自己的观念也发生了变化,毕竟关注我的人里应该还是很多人不会编程的,那么借这个机会让他们看看,我有某个小需求时是如何处理的;同时,我也好奇如果是他们会如何处理,有什么其他我不知道的高效方法,可以评论分享下。

当然这里并不会完全解释每一步的含义与代码为什么这么写,小白可以看看如何操作即可,这样以后找身边的「工具人」程序员小哥哥小姐姐时,也能门儿清的说出口 XXX,对你来说这个很简单几分钟就能搞定,帮我个忙呗,多么熟悉且悦耳的话语,doge。

扯了那么多,让我看看到底要讲啥

某一天,因为某些以后会讲的原因,我想统计下「李子柒」YouTube频道里所有视频的累计播放量和累计视频总长度。

假如没学 JavaScript 的话,我应该会用 Python 爬虫实现。但学过 JavaScript 并了解到 Chrome 开发者工具里用 $$() 就能直接获取页面元素后,就不需要写爬虫获取页面再抽取数据,而是直接抽取并处理计算即可。

于是将页面拖到最底部,加载出所有视频列表。右键选中「检查」/「审查元素」,或者 Mac 快捷键 Command+Shift+C 打开 Chrome 开发者工具,选中要抽取的元素,比如图中单个视频时长的 5:01

确定数据是在 span.ytd-thumbnail-overlay-time-status-renderer 标签里后,用 $$() 选中,然后遍历输出文本内容,确实就是要的数据。

代码语言:javascript
复制
$$('span.ytd-thumbnail-overlay-time-status-renderer').forEach(el => console.log(el.innerHTML.trim()))

接着用 JavaScript 数组遍历中的 reduce() 方法,将每项数据拆成分和秒,再统一以秒进行累加,即可得到视频总长度为 51742秒, 约 14.37小时

代码语言:javascript
复制
$$('span.ytd-thumbnail-overlay-time-status-renderer').reduce((sum, el) => {
    let item = el.innerHTML.trim()
    let min = +item.split(':')[0]
    let sec = +item.split(':')[1]
    return sum + min * 60 + sec
}, 0)

同样的方式,计算出累计播放量约 173833万次

代码语言:javascript
复制
$$('span.ytd-grid-video-renderer:first-child').forEach(el => console.log(el.innerHTML.trim()))

$$('span.ytd-grid-video-renderer:first-child').reduce((sum, el) => {
    let playNum = +el.innerHTML.replace('万次观看', '');
    return sum + playNum;
}, 0)

随便 Google 找个有对 YouTube 频道进行评估的网站,可以看到播放量也是在17.4亿次左右,和上述结果差不多。

按照不少人的说法,YouTube 视频100万次播放量收益3千美元计算的话,李子柒全部视频17.4亿播放量的收益折算成人民币大概3583万元

不算不知道,一算吓一跳,当然实际比这高还是低,大家可以发表看法。感觉只高不低。

以上就是想分享的一个不用写爬虫,也能很方便对一些网页进行处理计算的操作

会者不难,难者不会。

我也好奇不会编程的小伙伴平时要是遇上类似的问题或需求,会怎么解决,有其它好的方法的话,也可以分享下。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一桩开心事
  • 其实很简单,真的值得分享吗?
  • 扯了那么多,让我看看到底要讲啥
相关产品与服务
云开发 CLI 工具
云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档