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 。