#google-translate #twitter #cambridge-dictionary

bin+lib mafa

玛法是一个终端网页浏览器伴侣

10个发布

0.3.1 2023年8月2日
0.3.0 2023年7月30日
0.2.3 2023年7月24日
0.1.0 2023年7月20日

587Web编程

Download history 2/week @ 2024-03-09 26/week @ 2024-03-30 11/week @ 2024-04-06

65 每月下载次数

GPL-3.0-or-later

1.5MB
7K SLoC

目录

演示

(由 peek 捕获)

推特时间线

谷歌翻译

剑桥词典

安装

先决条件

玛法不能单独工作,以下是一些它所依赖的程序

  1. Firefox
    • 版本:91或更高
    • 版本:ESR或最新版。

选项1:Cargo安装

如果您已经安装了Cargo,则可以

cargo install mafa

# check installed version
mafa --version

选项2:预构建的二进制文件

检查 发布

选项3:从源代码构建

正在进行中

关于

玛法是一个终端网页浏览器伴侣。它位于终端中,帮助用户快速高效地浏览网站内容。玛法通过玛法组件完成其任务。

玛法为那些想尽可能多地从Web的开放性中受益的人开发。

然而,玛法不适用于以下任务

  • 在没有网页浏览器的情况下浏览网站。(玛法需要Firefox)

  • 捕获网站的所有细节。(直接打开您喜欢的网页浏览器)

  • 爬取整个网站并提取所有数据。(专业的网络爬虫做得更好)

玛法是如何工作的

玛法利用WebDriver来实现其目标。更具体地说,使用了Mozilla的GeckoDriver。有了WebDriver,玛法可以像人类一样,为用户自然地浏览网站。

为什么选择玛法

玛法可用且方便

与其他同类工具不同,玛法努力在可用性和便利性之间取得平衡:玛法将尽力自行完成任务,或者在无法完美处理情况时(例如,当网站配备了CAPTCHA或需要用户登录时)指导用户直接打开网页浏览器。玛法试图成为浏览器的伴侣,而不是替代品。

玛法是中立的

底层WebDriver支持一个几乎功能齐全的网页浏览器。总的来说,玛法默认不删除用户或提供者可以利用的任何功能,就像在正常的全功能网页浏览器中一样。

因此,没有理由阻止提供者特别阻止玛法访问其网站,这可能会对双方都造成负面影响。

值得注意的是,Mafa 默认不会像普通网页浏览器那样清除用户身份。这对于网站提供商来说至关重要,因为虽然许多网站滥用用户隐私,但总有网站出于正当理由收集用户信息,例如 Ecosia

Mafa 稳定且持久

Mafa 的一个目标是在相对较长的时间内稳定地处理网站。现代网页以其动态特性而闻名。然而,Mafa 可以像处理静态网页一样轻松地处理那些动态且不可预测的网页。

背景

虽然 Mafa 最初是为 (M)aking (A)PI (F)ree (A)gain 开发的,但这并不现实。Mafa 不是释放 API,而是释放 API 后面的文本形式数据。"免费"这个词与 什么是自由软件? 中定义的相同,即如同“言论自由”,而不是“免费啤酒”。

一些网站提供其数据 公开,但不发布访问它的相应 API,而其他网站则在精心设计的网站和 API 中公开其数据 公开,但定价更加精心。这些网站通过不提供 API 或提供具有非平凡障碍的 API 来阻止用户访问其 公开 数据,这是对用户自由的不尊重。

Mafa 是致力于保护网络用户自由的一个。它尽最大努力实现最初的目标:只要数据对所有用户公开且无歧视,访问该数据的 API 也应该如此。

玛法组件

Mafa 组件 是依赖于 WebDriver 来完成任务的子程序。每个模块都有一个固定、预定义的网站 URL,并为该网站执行特定任务。有了组件,用户可以浏览网站而无需直接与网页浏览器交互。

请注意,Mafa 有选择地支持网站,而不是随意地,所选的网站包括

  • TWTL:查询 Twitter 用户的动态。

  • GTRANS:查询 Google 翻译的翻译。

  • CAMD:查询剑桥词典的单词定义。

  • IMODE:交互模式。

更多

Mafa 在心底是开放的!如果你的 favorite 网站未在此列出,你可以 提交功能请求 或为你的 favorite 网站编写组件,只要该网站符合以下要求

  1. 在可预见的未来不会关闭。
  2. 有价值的数据是文本形式。
  3. 公开提供的 API 的功能有限。

贡献

Mafa 仍处于早期开发阶段,任何贡献都受到欢迎!

许可证

Mafa 骄傲地采用 GPLv3 许可。

有关详细信息,请参阅 LICENSE-GPL。

依赖项

~22–35MB
~676K SLoC