两个基于爬虫的项目: Kiwix & ArchiveBox

我在之前的博文 “谈谈爬虫的昨天、今天和明天” 提到,爬虫技术是曾经互联网的基石,也是当今互联网技术的重要组成。未来 PC 服务和移动服务将产生功能上的分离,移动端更加关注普罗大众日常生活相关的功能(购物、社交、娱乐等),而 PC 将回归其本质,即工具属性

最近看帖子发现了两个基于爬虫的开源项目,虽然还残留着 PC 时代项目痕迹,但个人觉得这两个项目还是有一定的意义的,因为这两个项目从某种程度上来说,更加关注 PC 的工具性。同时国内关于这两个项目的介绍寥寥。今天在这里和大家分享一下~

1. Kiwix

Kiwix 的官方宣传是:在你的手机和电脑上轻松储存 Wikipeida 和任何网站(Store Wikipedia or any website on your mobile phone or computer, easily)。

这个网站最初是用来做 Wikipeida 离线访问的,后来逐步扩展到一些其他主流网站的离线访问,例如 Project GutenbergStack ExchangeYouTubeTed Talks

该项目的核心技术思路很直接、简单:

服务器定期爬取
网站的最新内容
转成特定的格式
(zimfile)
用户在有网络时
下载离线内容
用户在无网时也可以
查看离线内容

其中,zimfile 相关的代码是通过 C++ 进行开发的,而爬虫部分则是通过 python 实现的。

虽然看起来很简单,但实际上有很多技术难点,例如我们在 Wikipeida 里搜索一个东西可以得到很快的响应,这得益于 ES 等工具软件,但我们不可能在用户的电脑上安装一个 ES 吧,这样做速度和数据体积都会变得很大。如果仔细查看 Kiwix 的 github 相关仓库,会发现其相关工程非常多,是一个不折不扣的大型软件项目!

作为一名程序员,我看到该项目的第一反应是这对于很多只能离线编程的程序员兄弟简直是福音。(一些项目因为安全需求只能进行封闭开发,无法连接互联网!)

然而实际上该项目目标更加宏大:方便地向这个世界上无法使用网络的地方传播知识和文化!

无法使用网络?这可真不是开玩笑。我们看下面这张图,是 2017 年世界各地可以使用网络的人口比例:
2017 年世界各地可以使用网络的人口比例

对于非洲地区,很多地方由于基础设施缺失无法使用网络;其他一些地区由于政治原因,网络被管控;还有一些地区网络费用高昂,阻碍了大众获取知识。

而 Kiwix 项目甚至通过一个 U 盘就可以将思想进行传播,我觉得应该点个赞。

2. ArchiveBox

ArchiveBox 本身是一个制作网页 (站) 即时镜像的工具,这点和 Kiwix 有异曲同工之妙。但是 ArchiveBox 更加通用与小巧一些,可以把你想静态化的任何网站进行静态化,包括文本、图片、PDF 甚至视频。

技术上来讲,ArchiveBox 虽然技术品类比 Kiwix 多很多,用到了 wget、Chrome headless、youtube-dl、pywb、readability 等,但这些毕竟都是爬虫常用的技术,感觉并不复杂。

实际操作了官方的 docker 镜像后,发现其爬虫功能做得比较完备,以后有时间可以深入研究一下(不清楚为什么一个简单的网页他会处理很久…)。

软件截图如下:

ArchiveBox截图
其中:

相较于普通的浏览器书签,保存网站在浏览时的即时状态,可以很好地应对帖子被删除,甚至网站关闭这些特殊情况。但该软件总体来看 bug 较多,属于一个半成品状态

3. 总结

本文介绍的两个项目,均是基于爬虫技术的比较有意义的项目。今后如果再遇到一些让人眼前一亮的项目,会继续和大家分享~

更多资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值