若要使用 WSH 來直接抓取網頁,可以使用 Visual Basic 6 的元件 InetCtls.Inet,如果你的機器尚未安裝此元件,可以依照下列方式來進行安裝:
- 從下列網址下載壓縮檔案 msinet.cab:
http://activex.microsoft.com/controls/vb6/msinet.cab
(近端備份:...\wsh\download\msinet.cab)
- 對 msinet.cab 進行解壓縮,得到 MSINET.INF 和 MSINET.OCX,將這兩個檔案放到 c:\windows\system32 目錄下。
- 開啟 DOS 視窗,進入 c:\windows\system32 目錄,執行「regsvr32 msinet.ocx」,即可完成安裝。
安裝完成後,我們就可以使用 WSH 來直接抓取網頁,請見下列範例:
使用通用運算式,我們可以在抓取網頁後,顯示此網頁的標題,例如:
我們也可以在抓取一個網頁後,立即將網頁儲存到硬碟中的某個檔案:
我們也可以在抓取網頁後,利用通用表示法來抓出網頁中的連結網址和相關文字(Ancher Texts):
在上述範例中,我們利用 WSH 來抓取清大資訊系的首頁,並使用通用表示法來抓取連結網址及連結文字,典型輸出如下:
Downloading "http://www.cs.nthu.edu.tw"...
(中) ===> URL=2003NTHU_CS_Chinese.doc" target="_blank, TEXT=(中)
(英) ===> URL=2003NTHU_CS_English.doc" target="_blank, TEXT=(英)
===> URL=/intro.html, TEXT=
系所自我評鑑報告 ===> URL=Grading_report.doc, TEXT=系所自我評鑑報告
意 見 與 指 教 ===> URL=mailto:www@cs.nthu.edu.tw, TEXT=意 見 與 指 教
製 作 小 組 ===> URL=/webteam, TEXT=製 作 小 組
學 術 卓 越 & 社 區 關 懷 ===> URL=special.html, TEXT=學 術 卓 越 & 社 區 關 懷
...
前面範例所用的 InetCtls.Inet 元件,比較簡單,所以無法偵測網路斷線的情況,另一個 IIS 內建的元件 WinHttp.WinHttpRequest,則可以有較多偵錯功能,以下範例可以抓取 Google 首頁:
讀者可以暫停網路,再試看看上述範例,就會印出抓不到網頁的錯誤訊息了。
你也可以使用另一個內建元件 XMLHTTP 來抓取網頁:
我們也可以抓取諸如 jpg 或 mid 等二進制檔案:
JScript 程式設計與應用:用於單機的 WSH 環境