共计 1376 个字符,预计需要花费 4 分钟才能阅读完成。
摘要:Deno 是一个 JavaScript/TypeScript 的运行时,默认应用平安环境执行代码,有着卓越的开发体验。
有人的中央就有江湖,有江湖的中央就有争执。前些天,继《[译] 为什么现在 Deno 正全面取代 Node.js》之后,又有了《【译】Deno 曾经死了吗?》,兴许这便是江湖。说回题目”Deno 在手,天下我有“,其实 Deno 换成 Charj、NodeJS、Java 等其余名词都一样,毕竟只是题目罢了, 可能真正不一样的是应用她的愉悦感。对我而言,能给我带来 Copy 的快感,便是极好的!
源起
本周,被 @justjavac 巨佬的各个热搜榜我的项目吸睛了,抱着对技术的三分钟激情以及对优良代码的学习心切,我又开始了新的代码拷贝旅程。二话不说,先 git clone 一顿操作猛如虎,定睛一看,如同这几个我的项目的实现都差不多,也求教了巨佬本尊确定实现是一样的,但为毛要开 4 个 repo 呢?兴许这就是繁多职责准则吧。而后,我寻思着能不能整合一下再加点别的热搜榜就能变成 trending in one,是不是很棒的想法,哈哈哈哈。接下来,我还会对今日头条下手 –”得热搜者得天下,热搜榜拿来吧!“, 三下除二拿到了头条热搜榜(只管须要输出图片验证码)。最初就是资源整合,不过发现 README.md 爆了,看来单例还是有单例的好。
即刻获取今日热搜榜 ➡️ trending-in-one
分析
对于如何实现热搜汇总,如果不看源码,我也只能想到调用相干热搜榜的接口来获取,可他人的接口又怎么会给你随便调用呢?通过拜读大佬的源码,我看到了通过正则匹配 DOM 节点获取对应的题目链接之类的,我看到了通过正文定位包裹的内容并进行替换,我看到了 JavaScript 如何解决反复的数据,我看到了如何借助 github action 实现 Deno 利用的构建……只管只是一个微不足道的我的项目,却无所不包,作者将各种技巧搭配自若、灵活运用,几乎是炉火纯青、登峰造极啊(PS:在我看来事实如此)。
其实抛开语言和平台,要想实现热搜汇总榜,无非就是三步走:① 获取数据 ② 解决数据 ③ 输入数据。接下来从 Deno 的视角来具体讲解这三步是如何走的:
获取数据
当咱们遇到一个需要,可能要从它的实质登程,比方要实现热搜汇总,首先咱们就须要各大平台的热搜数据,现在日头条热搜榜、知乎热门视频、知乎热门话题、常识热门搜寻、微博热门搜寻等等,怎么获取呢?惯例的伎俩就是框按 F12 看看 Network,切实不行试试抓包工具. 好在“前人栽树后人乘凉”,于是乎咱们便有了各平台的接口,获取数据岂不是信手沾来。
头条热榜:https://is-lq.snssdk.com/api/…
微博热搜:https://s.weibo.com/top/summary
知乎热门话题:https://www.zhihu.com/api/v3/…
知乎热门视频:https://www.zhihu.com/api/v3/…
知乎热搜:https://www.zhihu.com/api/v4/…
当然以上接口并非永恒无效,目前来看也只能是能用多久用多久了,如果您不满足于此,亦能够试试 Twitter、Medium 等等 (PS:坏蛋毕生安全)。不过,上边的接口中,微博热搜特立独行,她返回的是 HTML 须要用到正则匹配即可拿到热搜题目和链接,正则可把我难住了:/