控制台上的 Web

作者:Joey Bernard

 

大多数人在想到浏览 Web 时,会想到“图形界面”。而且,在 X11 环境下,有很多很棒的程序,比如 Firefox 或 Chrome。但是,控制台并非看起来那样是荒地。许多实用程序可用于浏览 Web,以及下载或上传内容。

假设您想浏览 Web 并查找一些内容。首先要看的实用程序也是最古老的实用程序之一,即久负盛名的 Lynx。Lynx 实际上是我的第一个 Web 浏览器,它运行在一台无法处理 X11 的机器上。在其最基本的形式中,您只需在命令行上运行它,并为其提供文件名或 URL。因此,如果您想访问 Google,您将运行

lynx http://www.google.com

 然后 Lynx 会询问您是否要接受 Google 尝试设置的 Cookie。一旦您接受或拒绝 Cookie,Lynx 就会加载该网页并呈现它。您无疑会注意到,这里没有图像。但是,用于输入搜索查询的所有链接和文本框都在那里。您可以使用箭头键从一个链接导航到另一个链接。由于布局非常简单且基于文本,因此项目在屏幕上的位置与您使用图形浏览器时看到的位置非常不同。

Lynx 的几个选项可能很方便了解。您可以在启动 Lynx 时传入多个 URL。Lynx 会将所有这些 URL 添加到您会话的历史记录中,并呈现最后一个 URL 并显示它。当您测试加载上面的 Google 时,Lynx 询问是否接受 Cookie。现在大多数网站都使用 Cookie,因此您可能不想听到每个 Cookie 的提示。使用选项 -accept_all_cookies 以避免这些警告消息。您可以使用 Lynx 通过选项 -dump 将网页处理为可读格式,该选项从 Lynx 获取呈现的输出并将其写入标准输出。这样,您可以将网页处理为可读格式,并将它们转储到一个文件中以供以后查看。您可以使用选项 -vikeys 或 -emacskeys 选择要使用的键盘映射,因此快捷键将与您选择的编辑器匹配。

Lynx 确实存在一些问题。它在 HTML 表格渲染方面存在困难,并且它不处理框架。因此,让我们看看 Links 浏览器。Links 不仅可以在命令行上的文本模式下工作,而且还可以编译为使用图形显示。支持的图形系统包括 X11、SVGA 和帧缓冲。您可以使用选项 -g 选择其中一个图形界面。Links 还可以使用 -dump 选项将渲染的网页写入标准输出。如果您需要使用代理,请使用选项 -http-proxy host:port 告诉 Links 要使用哪个代理。Links 还能够处理有错误的 Web 服务器。一些 Web 服务器声称符合特定的 HTTP 版本,但实际上并非如此。为了弥补这一点,请使用 -http-bugs.* 选项。例如, -http-bugs.http10 1 强制 Links 使用 HTTP 1.0,即使服务器声称支持 HTTP 1.1。

如果您正在寻找久负盛名的 Lynx 的严格文本替代品,那么可以选择 ELinks。ELinks 支持颜色、表格渲染、框架、后台下载和标签式浏览。一个可能有用的选项是 -anonymous 1。此选项禁用本地文件浏览和下载等。另一个有趣的选项是 -lookup。当您使用此选项时,ELinks 会打印出给定域名的所有已解析 IP 地址。

既然您可以通过命令行查看 Web 内容,那么如何与 Web 交互呢?我真正的意思是,您如何从 Web 上传和下载?假设您想要 Web 上某些内容的离线副本,以便您可以在没有 Internet 连接的湖边悠闲地阅读它。您可以使用 curl 来做到这一点。curl 可以使用 HTTP、FTP、SFTP 甚至 LDAP 将数据传输到 Internet 上的服务器或从服务器传输数据。它可以执行诸如 HTTP POST、SSL 连接和 Cookie 之类的操作。您可以指定表单名称/值对,以便 Web 服务器认为您正在使用选项 -F name=value 提交表单。一个真正有趣的选项是能够通过范围使用多个 URL。例如,您可以使用以下命令指定多个主机

curl http://site.{one,two,three}.com

这将访问所有三个站点。您可以使用方括号遍历字母数字范围。命令

curl http://www.site.com/text[1-10].html

下载文件 text1.html 到 text10.html。

如果您想要整个站点的副本以供离线浏览怎么办?wget 工具可以在这里提供帮助。在这种情况下,您可能需要使用以下命令

wget -k -r -p http://www.site.com

选项 -r 从 http://www.site.com/index.html 开始递归遍历站点的链接。选项 -k 重写下载的文件,以便从一个页面到另一个页面的链接都是相对的,从而允许您正确地浏览下载的页面。选项 -p 下载页面上的所有额外内容,例如图像。这样,您就可以在桌面上获得站点的镜像。wget 还处理代理、Cookie 和 HTTP 身份验证以及许多其他条件。

如果您要将内容上传到 Web,请使用 wput。wput 使用 FTP 上传内容,其界面类似于 wget。

现在您应该能够在无需使用图形界面的情况下与 Internet 交互了——这是让您继续使用命令行的另一个理由。

 

加载 Disqus 评论