chklinks
Author: 依玛猫
Keywords: 网站超连结检查程式

正體中文 | 简体中文 | English

:::

# `chklinks`

## 最新消息

2007-06-06
  `chklinks` 最新版本 3.04 ，修正说明文件。下载 `chklinks` 3.04 版。
2007-06-06
  `chklinks` 最新版本 3.03 ，修正 `HTML::Parser` 的原始 UTF-8 警告讯息，加上支援以 `Module::Build` 安装。下载 `chklinks` 3.03 版。
2006-06-02
  `chklinks` 最新版本 3.02 ，更正错误的数位签名。下载 `chklinks` 3.02 版。
2006-05-31
  `chklinks` 最新版本 3.01 ，修正 `Makefile.PL` 漏掉的相依模组，并把漏掉的 HTML 文件加回来。下载 `chklinks` 3.01 版。
2006-05-30
  `chklinks` 最新版本 3.00 ，改用 `HTML::LinkExtor` 解读网页并用 `LWP::RobotUA` 连线取得网页。支援 `http` 外的其它网址格式。支援网站的 Cookies 。遵守 `robots.txt` 设定的规则。下载 `chklinks` 3.00 版。
2005-10-02
  网站样式调整，加上无障碍网页的设计，以 CSS 边框代替 `<hr />` ，以符合无障碍网页空间的要求。
2005-04-27
  网站上的繁体中文字样更正为正体中文。
2003-05-26
  `chklinks` 最新版本 2.02 ，预设由检查本页就好，改为检查整个网站。这样比较符合大多数的需求。下载 `chklinks` 2.02 版。
2003-05-25
  `chklinks` 最新版本 2.01 ，加上安装程式、附加档案与 POD 说明档。下载 `chklinks` 2.01 版。
2003-05-25
  `chklinks` 最新版本 2.0.0 ，首次公开上传到 SourceForget 。只有主程式。下载 `chklinks` 2.0.0 版。
2003-05-19
  SourceForge 专案通过。
2003-05-18
  申请 SourceForge 专案。

## 说明

`chklinks` 是用 Perl 写的连结检查程式，用来检查网站上的超连结有没有疏漏。

`chklinks` 和 `linkchecker` 不同之处在於，`chklinks` 不是多执行绪的程式。 `chklinks` 检查时，不会同时启动一大堆连线同步检查，耗尽系统资源，导致当机。对大多数网管和使用者而言，这样做安全得多。

`chklinks` 遵守 `robots.txt` 设定的规则。若你的网站拒绝自动网页程式，导致 `chklinks` 无法执行，请在你的 `robots.txt` ，加入下列两行，放行 `chklinks` ：

>     User-agent: chklinks
>     Disallow:

`chklinks` 使用 `LWP::RobotUA` 连线，支援下列通讯协定： `http` 、 `https` 、 `ftp` 、 `gopher` 及 `file` 。`chklinks` 也可以检查一般的档案。（若要使用 `https` 通讯协定，需先安装 `Crypt::SSLeay` 。这是 `LWP::RobotUA` 的需求。）

`chklinks` 支援网站的 Cookies 。

## 系统需求

1. Perl 5.6 或以上。我还没有在更早的版本上成功执行过。若你可以在更早的版本上执行，请告诉我。你可以输入 `perl -v` 查询你目前的 Perl 版本。目前大多数的 Unix 系统都有 Perl 。如果你没有 Perl 或需要升级，可以到 Perl 网站下载安装最新版 Perl 。若你是用 MS-Windows ，可以下载安装 ActiveState 公司的 ActivePerl 。
2. 本程式需要下列 Perl 模组： `URI` 、 `HTML::LinkExtor` 及 `LWP::RobotUA` 。 `HTML::LinkExtor` 为 HTML-Parser 中的模组， `LWP::RobotUA` 为 libwww-perl 中的模组。如果你没有，可以到 CPAN 程式库下载安装。若你由 `CPAN` 或 `CPANPLUS` 中安装，会自动帮你安装这些所需的模组。
3. 选配的 Perl 模组：
   `Crypt::SSLeay`
     这是要让 `LWP::RobotUA` 支援 HTTPS 的功能。
   若没有上列 Perl 模组，请到 CPAN 程式库下载安装。

## 下载

`chklinks` 的官方网站在：

- SourceForge 上的 `chklinks` 网站。
- `chklinks` SourceForge 专案页。
- `chklinks` CPAN 专案页。
- 旅舍依玛 `chklinks` 网页。

最新版 `chklinks` 可由下列位址下载：

- `chklinks` SourceForge 下载页。
- `chklinks` CPAN 专案页。
- 旅舍依玛 FTP 站。

依玛猫的 PGP 公钥在：

- `chklinks` SourceForge 网站上的依玛猫 PGP 公钥。
- 旅舍依玛上的依玛猫 PGP 公钥。

## 命令列参数

    ./chklinks [参数] 网址1 [网址2 [网址3 …]]
    ./chklinks [-h|-v]

-1,--onelevel
  检查本页就好，不继续查下去。
-r,--recursive
  检查完整个网站。预设是 `--recursive` 。
-b,--below
  只检查该目录下的连结。预设是 `--below` 。
-p,--parent
  上溯到全站的连结。
-l,--local
  只检查站上的连结，不检查站外连结。
-s,--span
  检查站外的连结（但不会查下去）。预设是 `--span` 。
-e,--exclude 路径
  排除该路迳。把该路径下的档案当成站外连结，只检查能不能连，不深入查下去。你可以指定很多个 `--exclude` 。
-i,--include 路径
  包含该路迳。和 `--exclude` 效果相反，用来抵销 `--exclude` 。排后面的优先处理。
-d,--debug
  显示详细的执行讯息。越多个 `--debug` ，讯息越详细。
-q,--quiet
  关闭执行讯息。和 `--debug` 效果相反，用来抵销 `--debug` 。
-h, --help
  显示程式说明。
-v, --version
  显示程式版本。
网址1 、网址2 、网址3
  要检查的网站网址。

## 注意事项

`chklinks` 尚未遵守 `robots.txt` 的 `Crawl-delay:` 规则。不过这是 WWW::RobotRules 的问题，不是 `chklinks` 的问题。

若出现以下警告：

>     Parsing of undecoded UTF-8 will give garbage when decoding entities at /usr/share/perl5/LWP/Protocol.pm line 114.

这是 `LWP::Protocol` 用新版 `HTML::Parser` 3.40 版以上时产生的问题。请参阅 CPAN RT Bug#20274 报告，取得 `LWP::Protocol` 的修补程式。

## 已知问题

`chklinks` 还不支援登入帐号密码的功能。 W3C-LinkChecker 有支援这个功能。若不是 Digest 登入，只是 Basic 登入，你可以先用像是 `http://user:pass@some.where.com/some/path` 的语法登入。不过请不要这样做。任何人只要用 `ps` 指令，就看得到密码。如果这时候系统有入侵者偷偷溜进来，也可以看得到。而且这样写在指令中的密码，也会存在你的指令记录档中。

应该可以支援 `mailto:` 的网址，检查其 DNS/MX 是否可用。 Bastian Kleineidam 的 `linkchecker` 有支援这个功能。

一般档案的支援目前只在 Unix 和 MSWin32 上测试过，还需要在其它作业系统如 VMS 及 Mac 上测试能不能运作。

## 支援协助

`chklinks` 网站架在 SourceForge 、 CPAN 与 旅舍依玛。索取最新资讯，请驾临：

- SourceForge 上的 `chklinks` 网站。
- `chklinks` SourceForge 专案页。
- `chklinks` CPAN 专案页。
- 旅舍依玛 `chklinks` 网页。

在 SourceForge 上有一个 `chklinks` 的邮件通讯 。使用上的问题、建议或错误回报，请提到通讯上讨论。它是 Mailman 的邮件通讯。若要加入，请到 `chklinks` 邮件通讯的网页 。你也可以写信到 E-mail 指令信箱，标题填上 `help` ，索取 E-mail 指令说明。

## 参考资料

`LWP::UserAgent` 、 `LWP::RobotUA` 、 `WWW::RobotRules` 、 `URI` 、 `HTML::LinkExtor` 、 Bastian Kleineidam 的 `linkchecker` 及 W3C-LinkChecker `checklink` 。

## 作者

依玛猫。

## 版权声明

版权所有 © 2003-2007 依玛猫。

本程式是自由软体，您可以遵照自由软体基金会 (Free Software Foundation) 出版的 GNU 通用公共许可证条款 (GNU General Public License) 第二版来修改和重新发布这一程式，或者自由选择使用任何更新的版本。

发布这一程式的目的是希望它有用，但没有任何担保。甚至没有适合特定目的而隐含的担保。更详细的情况请参阅 GNU 通用公共许可证。

您应该已经和程式一起收到一份 GNU 通用公共许可证的副本。如果还没有，写信给： Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 。