通过 webBrowser1.Document.Body.innerHTML 或 WebBrowser1.Document.documentElement.outerHTML得到的页面代码都和原来的代码有区别:HTML 标签都变成了大写
有些双引号也丢失了如
如 <div id="tt">title</div> 变成了 <DIV id=tt>title</DIV>请大侠们帮帮忙啊,如果能够得到的源码和在浏览器点击右键查的的源码一模一样
补充: 我把得到的代码放到 TextBox 和 richTextBox 都试过了

解决方案 »

  1.   

    基本很难和右击查看源代码一样的。右击查看源代码得到的是服务器直接返回的,返回后css、js等代码还会做很多布局处理的。
      

  2.   

    用如下的方法虽然可以得到页面的源码,但是它不是用 webBrowser 这个控件,本人现在就是想用控件来解决,以防被某些网站给禁止了
    Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As LongPrivate Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPrivate Sub SourceCode()    '查看源代码
    '--------------------首先将源代码下载到本地保存为HttpDM.txt文件--------------------------
    URLDownloadToFile 0, "http://www.baidu.com", App.Path & "\HttpDM.txt", 0, 0
    '--------------------然后用记事本打开HttpDM.txt文件--------------------------
    ShellExecute Me.hwnd, "Open", App.Path & "\HttpDM.txt", vbNullString, vbNullString, SW_SHOW
    End Sub
      

  3.   

    [code=V]Private Function GetXmlHttp(ByVal GetURL As String) As String
    On Error GoTo Exittag:
    Dim Retrieval As Object
    Set Retrieval = CreateObject("Microsoft.XMLHTTP") '//建立对象
    With Retrieval
                .open "GET", GetURL, False, "", "" '//GET 方式获取页,还有比如POST 形式提交数据
                .Send
         Do Until .ReadyState = 4
                DoEvents
         Loop
         GetXmlHttp = bytes2BSTR(.responseBody) '//转换byet到string
    End With
    Set Retrieval = Nothing '//释放
    Exit Function
    Exittag:
          Debug.Print Err.Description & "GetXmlHttp"  '//获取错误信息,产生错误后,错误信息会放入vb.Err对象
          Err.Clear
    End FunctionPrivate Function bytes2BSTR(ByVal vIn As String) As String
    Dim i As Long
    Dim ThischrCode As Integer
    Dim NextchrCode As Integer
    Dim strReturn As String
    Dim timeOut As Long
    timeOut = Timer
    strReturn = ""
    For i = 1 To LenB(vIn) '//按字节处理
        ThischrCode = AscB(MidB(vIn, i, 1))
        If ThischrCode < &H80 Then '//128 以下;0~127范围,ASCII 码
            strReturn = strReturn & Chr(ThischrCode)
        Else
            NextchrCode = AscB(MidB(vIn, i + 1, 1)) '//127以上,当中文。
            strReturn = strReturn & Chr(CLng(ThischrCode) * &H100 + CInt(NextchrCode))
            i = i + 1
        End If
        If Int(Timer - timeOut) > 5 Then
            Debug.Print "TimeOut!"  '//防止超时
            Exit For
        End If
    Next
    bytes2BSTR = strReturn
    End Function[/code]使用:Text1.Text=GetXmlHttp("http://www.baidu.com")
      

  4.   

    innerHTML 方法是肯定得不到原始页面源码的
    只用webBrowser无法实现此目的
    用xmlhttp吧
    [code=V]           Set xmlHTTP1 = CreateObject("Microsoft.XMLHTTP")
               xmlHTTP1.open "post", "http://user01/forum/admincp.php?sid=36yo76&frames=yes", False
               xmlHTTP1.send
               While xmlHTTP1.ReadyState <> 4
                     DoEvents
               Wend
               sPage = xmlHTTP1.responseText
               Set xmlHTTP1 = Nothing[/code]
      

  5.   

    用inet控件符合你的要求
    http://blog.csdn.net/asftrhgjhkjlkttttttt/archive/2009/11/25/4872478.aspx
        Dim s As String
        Inet1.Cancel
        Inet1.protocol = icHTTP
        Inet1.URL = "http://www.baidu.com"
        s = Inet1.OpenURL
        If Len(s) = 0 Then Exit Sub
        Open "e:\aa.txt" For Output As #1
        Print #1, s
        Close #1
        '--------------------然后用记事本打开HttpDM.txt文件--------------------------
        ShellExecute Me.hwnd, "Open", "e:\aa.txt", vbNullString, vbNullString, SW_SHOW
      

  6.   

    Dim y
    Dim i
    a = Len(Text3.Text)
    Me.WebBrowser1.Navigate Text2.Text
    Do Until WebBrowser1.ReadyState = READYSTATE_COMPLETE
    DoEvents
    Loop
    y = Me.WebBrowser1.Document.body.innertext我某个工具代码。用
    ReadyState = READYSTATE_COMPLETE
    Document.body.innertext
     看行不行··