DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> 用XMLHTTP讀取網頁源代碼
用XMLHTTP讀取網頁源代碼
編輯:XML詳解     
  在VBScript中,我們用XMLHTTP組件來獲取網頁源代碼,並可以賦給某變量從而動態保存為Html文件。有關XMLHTTP對象的介紹請參考以下文章:http://www.webjx.com/htmldata/2005-10-17/1129556661.html;有關XMLHTTP的使用實例請參考以下文章:http://www.webjx.com/htmldata/2005-02-25/1109332374.Html。
    我按照第二篇文章的介紹寫了一段代碼:
    <%
    set x=server.createObject("Microsoft.XMLHTTP")
    x.open "get","http://www.webjx.com",false
    x.send
    response.write "<xmp>"&x.responseText&"</xmp>"
    set x=nothing
    %>
    不過測試後發現其中的中文全都顯示為亂碼,去網上搜了一下,實在找不著一個簡單的解決辦法。不過找到一個responseBody屬性,這在第一篇文章中是沒有提及的。和responseText屬性不同的是,responseBody返回的是一個二進制字符串(responseText返回的是普通字符串),用response.binaryWrite x.responseBody,發現能正常顯示中文。於是我們只需編寫一個把二進制字符串轉換為普通字符串的函數bin2str:

    function bin2str(bin)
        dim tmp,ustr
        tmp=""
        for i=1 to LenB(bin)-1
 ustr=AscB(MidB(bin,i,1))
            if ustr>127 then
                i=i+1
                tmp=tmp&chr(ustr*256+AscB(MidB(bin,i,1)))
            else
                tmp=tmp&chr(ustr)
            end if
        next
        bin2str=tmp
    end function
    
    關於從二進制字符串中恢復漢字信息請參照以下文章:http://www.ahcit.com/200407/20040752.doc。
    有了這個函數,我們就可以很方便地提取指定網址的源代碼並賦給變量了:

    set x=server.createObject("Microsoft.XMLHTTP")
  x.open "get","http://www.webjx.com",false
    x.send
    str=bin2str(x.responseBody)
    response.write "<xmp>"&str&"</xmp>"

    set x=nothing
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved