智能(脚本辅助)浏览

作者:Marco Fioretti

基本上,有两种方式浏览网络:交互式,使用任何文本或图形浏览器;或者批处理模式,使用程序将单个页面或整个网站复制到您的硬盘驱动器以供以后使用。脚本辅助浏览是客户端 Web 脚本的一部分,它通过以下两种方式之一合并这两种技术,使您对 Web 的使用更加高效和强大。

在第一种情况下,您可以直接或作为守护进程运行一个脚本,该脚本下载一个网页,从其源代码中提取一个有趣的 URL 并终止,然后在您最喜欢的 Web 浏览器中打开相应的页面。在我的文章“客户端 Web 脚本”中已经描述了应用于 Konqueror、Galeon 和 Netscape(Mozilla 使用与其同类产品相同的命令)的第一种方法的几个示例,该文章发表在 2002 年 3 月的 Linux Journal 杂志上。

第二种情况,也在那篇文章中提到,与第一种情况相反。也就是说,在正常的交互式 Web 浏览期间,您注意到一个指向有趣页面的超链接,并且从浏览器内部,您启动一个 Web 脚本,该脚本将自动下载该页面并对其执行一些或多或少的复杂操作。此操作可以是您能想到的任何事情:下载该页面中包含的所有图像,在弹出窗口中列出它指向的所有页面等等。您仅受您的脚本技能的限制。

这是一个示例:镜像一个网页及其指向的所有页面。假设您刚刚发现一些新的、有趣的程序。在其主页上,一个链接直接指向网站上包含完整用户手册的大量子部分,并且您想将所有信息镜像到您的硬盘上。这些情况下的标准工具是 wget,因此我们不需要编写新的工具。但是,如何在不打开终端窗口并手动输入 URL 的情况下,直接从 Web 浏览器启动它?本文的其余部分解释了如何在 Konqueror 中自动化此操作;该示例已使用 Red Hat 7.2 附带的标准 KDE、Konqueror 和 wget 工具进行了测试。

步骤 1:准备 wget 脚本

编写一个简单的 shell 脚本,该脚本在第一个参数上使用 -m(镜像)选项调用 wget,并将其命名为 wgetscript.sh(或者您想要的任何名称)。我的脚本的内容是

                       #!/bin/bash
                       /usr/bin/wget -m -L -t 5 -w 5 $1
                       exit

将脚本放在正确的目录中(我选择 $HOME/bin 并使其可执行,chmod 755 <filename>

步骤 2:将脚本添加到 KDE 应用程序菜单

按照 KDE 用户指南的此段落中的指南,www.kde.org/documentation/userguide/adding-programs.html,将脚本添加到 KDE 菜单。图 1 显示了我为完成此操作必须编写的内容。字符串“mymirror”是实际出现在菜单中的字符串,注释是不言自明的。这张图片中真正有趣的东西,即对于整个过程的正确工作绝对必要的黑色魔法,是“命令”框的内容

/home/marco/bin/wgetscript.sh %u

除了使用脚本的完整路径外,重要的是 %u 部分;这将告诉 Konqueror 使用我们选择作为第一个参数的 完整 URL 启动脚本。另请注意,我选中了“在终端中运行”选项。这样,将打开一个 Konsole 窗口并运行您的脚本,并且可以看到发生了什么。

Smart (Script-Aided) Browsing

图 1. 将 wget 添加到 KDE 菜单

步骤 3:启动脚本

现在,要从 Konqueror 使用此脚本,您必须右键单击要镜像的链接(在此示例中,我选择自由软件基金会页面上的“Manuals online”链接),然后选择“打开方式...”选项。Konqueror 将打开图 2 中显示的窗口,您可以在其中选择“mymirror”。

Smart (Script-Aided) Browsing

图 2. “打开方式”选项

步骤 4:去睡个午觉

就是这样!现在 Konqueror 将打开一个 Konsole 并使用完整的 URL(在我的示例中为“wgetscript.sh http://www.fsf.org/manual/manual.html”)启动脚本。您可以浏览其他页面或执行您想做的任何事情,完成后,您想要阅读的页面将在您的硬盘驱动器上可用。

如图 3 所示,由于 -m(镜像)选项,wget 将首先下载并保存在磁盘上给定的 URL,然后解析它,下载它指向的所有页面等等,递归地进行。对此(或任何其他自动 Web 导航工具,就此而言)非常谨慎,并查阅 wget 手册以根据您的需求、代理设置和带宽进行调整。

Smart (Script-Aided) Browsing

图 3. wget 镜像选项

步骤 5:享受成果

镜像时,wget 会创建一个与 Web 服务器(在本例中为 www.fsf.org)同名的目录,并将所有内容放在其中。最后一张图片,图 4,是在 wget 仍在工作时制作的该目录的列表。如您所见,网站上存在的所有子目录都已保留,并且所有相对链接都已自动更正,以便在镜像页面之间进行正确的导航。

Smart (Script-Aided) Browsing

图 4. wget 镜像的目录

结论

我详细展示了如何直接从 Konqueror 启动 shell 脚本。如何做到这一点并不是 Konqueror 最有文档记录的功能之一;至少,它不是最容易找到的功能之一。几年前我学会了如何做到这一点,但从那时起我丢失了笔记,并在 KDE 和 Konqueror 网站上花了半天时间但没有成功。我真的很感谢 David Faure 给了我我需要的所有信息。

我仍在尝试将此功能添加到其他流行的浏览器,尤其是 Mozilla 和 Galeon。到目前为止,我还没有成功,因为(至少在 Red Hat 7.2 附带的版本中)这些浏览器缺少使 Konqueror 上的技巧奏效的“打开方式”菜单选项。非常感谢任何建议或指向相关文档的指针。

电子邮件:linuxdesk@inwind.it

加载 Disqus 评论