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