一周新鲜事(二)
船新的b站爬虫
起因
上一周的新鲜事中,我分享了一个b站爬虫,实现相对简单。然而这个星期再去看时,发现竟然用不了了。b站返回的网页源码似乎发生了变化,导致无法获取到视频和音频的链接。
然而我的新项目muzit希望能从b站获取到音乐资源。这个项目起因于Listen1,一个音乐播放器。它可以从各个平台获取到音乐,包括b站,但是无法直接下载。于是我就想要做一个本地的私人音乐库,管理本地的音乐。想要更实用,自然就能够需要下载音乐资源。由于这个项目同时也是为了C语言课的期末个人项目而写,于是我决定用Qt来编写。
思路源头
偶然的一次,在Listen1应用中按下了F12,发现这个软件能够跟浏览器一样获取网页源码。于是这时我就想从它的源码中学习如何获取b站资源。
点开network,发现每次播放音乐,它都会有一个playurl的请求,获取到了一个json文件,稍微探索一下就能发现里面有视频和音频链接。此时我觉得只差临门一脚了,可没想到这一脚花了不少时间。在一个C语言交流群中,我问了如何能够获取到这个playurl文件,但是没有得到想要的答案,只获得了一些信息。之后我在各个平台上提问,CSDN回答得挺快,但是回答的是AI,根本没法解决问题,贴吧迟迟没有回复。问了几个大佬,也都被推辞了。
之后我只能自己寻找解决办法。没想到一琢磨,在headers中找到了这个请求的url,只需要bvid和cid就能获取到这些数据!在网页源码中也可以找到cid。
解决方案
获取到要下载视频的bv号,在网站源码中找到cid,接着请求playurl,转化为json,找到链接,下载到文件。需要注意的是QT中写入二进制文件不要用out,而要用file.write()。现在最后一步就是将下载到的m4s文件转为mp3文件。
没有链接的互联网
看到了这周阮一峰的科技爱好者周刊,感受到了一些危机。难道说未来的个人网站的流量会越来越少吗?但是细细一想,影响或许不会有想象中的那么大。至少目前AI能够解决的问题有限,一些技术问题我更愿意自己去浏览器搜索,一些个人博客的质量确实优秀。
然而之后AI的能力变强,是否会取代浏览器?博客的传播依赖于浏览器,那到时是否就会迎来没落。互联网的越来越中心化,集权化,然而个人博客的搭建和维护需要时间和精力,远不及大众化的平台方便。当然博客有它的优点,就是高度个性化。
所以未来的出路是否会是将个人博客中心化。搭建一个平台,便捷地获取域名、服务器,同时可以随意地个性化。用户寻找高质量博客内容时也能够更方便。
程序员的工具箱
真是我博客理想中的样子,聚集了一堆好用的小工具。包括生成代码图片,linux命令速查,导航网站等等