- 下載 InetCtls.Inet 元件 : http://activex.microsoft.com/controls/vb6/msinet.cab
- 雙擊 msinet.cab 解壓縮後, 得到 msinet.inf 與 msinet.ocx, 請將此兩檔複製到 C:\Windows\system32\ 下.
- 打開 DOS 視窗, 進入 C:\Windows\system32\, 點擊 msinet.ocx 執行安裝即可.
var inet=new ActivXObject("InetCtls.Inet"); //產生 Inet Controls 物件
inet.Url="http://www.google.com.tw"; //指定欲抓取的網頁
inet.RequestTimeOut=60; //設定抓取計時器為 60 秒
WScript.Echo("正在下載 " + inet.Url + " 中 ... ");
var page=inet.OpenURL(); //下載網頁
WScript.Echo(page);
書上說, 此元件無法偵測網路斷線情況, 因此當網路斷線時就會 Time out, 而程式卻無法察知. 如果要能偵測網路斷線情況, 則須用 IIS 內建的元件 WinHttp.WinHttpRequest, 上面範例程式碼可改寫如下 :
var url="http://www.google.com.tw"; //指定欲抓取的網頁
var page=null;
try {
var whr=new ActiveXObject("WinHttp.WinHttpRequest.5.1");
whr.Open("GET", url, false); //用 GET 方法下載網頁
whr.Send(); //向伺服器傳送要求
page=whr.ResponseText; //取得網頁
}
catch(e) {
page="錯誤 : " + e.description;
}
WScript.Echo(page);
問題是, 如果電腦沒有安裝 IIS, 那這個 WinHttpRequest 元件會存在嗎? 再測試看看.
沒有留言 :
張貼留言