vb獲取網頁
『壹』 vb中如何實現提取網頁內容
在vb窗體上加入webBrowser控制項,並加入一個時鍾控制項,設置為200毫秒,加入一個文本框
Private Sub Form_Load()
webBrowser1.Silent = True'屏蔽腳本錯誤提示
End Sub
Private Sub Command1_Click()
webBrowser1.Navigate "http://www..com" '打開網址
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
If Web1.Busy Then '如果網頁還沒完全打開則退出
Exit Sub
Else
Timer1.Enabled = False
Text1.Text = webBrowser1.Document.body.innerhtml '獲取網頁源碼
'Text1.Text = webBrowser1.Document.body.innerText '獲取網頁文本
end if
End Sub
『貳』 VB讀取網頁內容
這里有兩中方法,個人覺得第一種比較快,而且第二種字體總顯示亂碼。
1、利用inet控制項
放一個Internet Transfer Control,一個按紐和兩個文本框在窗體上
text1用來輸入網址,text2用來輸入暫存的文件名如c:\temp.htm
然後輸入以下代碼
Private Sub Command1_Click()
Dim B() As Byte
'取消所有操作
Inet1.Cancel
'設定協議為HTTP
Inet1.Protocol = icHTTP
'設定URL屬性
Inet1.URL = Text1
'將讀取的HTML數據放進一個byte array
B() = Inet1.OpenURL(, icByteArray)
'建立一個暫存文件來存放取回來的html文件
Open Text2 For Binary Access Write As #1
Put #1, , B()
Close #1
MsgBox "ok"
End Sub
2、利用webbrower控制項
和上邊放一樣的控制項,不過把inet改成webbrower控制項(引用的時候選internet controls就可以了),另外再加一個timer控制項
然後加入以下代碼
Private Sub Command1_Click()
WebBrowser1.Navigate Text1
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Dim Doc, ObjHtml As Object
Dim StrHtml As String
Dim B() As Byte
If Not WebBrowser1.Busy Then
Set Doc = WebBrowser1.Document
Set ObjHtml = Doc.body.createtextrange()
If Not IsNull(ObjHtml) Then
B() = ObjHtml.htmltext
Open "c:\temp.htm" For Binary Access Write As #1
Put #1, , B()
Close #1
End If
Timer1.Enabled = False
MsgBox "ok"
End If
End Sub
朋友你好,你現在會讀HTML了,但是現在要讀取指定標簽里的內容,比如<p>中的,你可以這樣:
放一個WebBrowser(引用部件的Microsoft Internet Controls)
然後復制下面的代碼:
Private Sub Form_Load()
WebBrowser1.Navigate2 "那個網頁的地址/文件地址"
End Sub
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Dim doc As Object, i
Set doc = WebBrowser1.Document
For Each i In doc.getelementsbytagname("p")
Text1.Text = Text1.Text & " " & i.innertext
'得到所有p標簽元素;然後將內容(非HTML,這樣過濾H5標簽)加入文本框
Next
End Sub
'祝樓主你成功喔!
『叄』 VB獲取網頁源碼中的網址
你好,(由於問題情境不充足,)這里假設你通過 Winsock 控制項或 Internet Control 控制項成功地獲取網頁源碼並存儲入變數 strCode 中。
然後可以參考以下思路:
' 註:該程序只能作為獲取靜態網頁類型(*.htm/*.html)文件的鏈接。以下代碼最好放入一個獨立的函數中:
Dim l As Long, j As Long, lLen As Long
Dim strTmp As String, strTmp2 As String
Dim strLink As String, strLinkList As String
Dim bErr As Boolean
lLen = Len(strCode)
strTmp = LCase(strCode)
l = InStr(1, strTmp, "http://")
Do While l <> 0
For j = l + 7 To lLen - 1
strTmp2 = Mid(strTmp, j, 5)
If strTmp2 = ".html" Then ' 命中
strLink = Mid(strTmp, l, j - l + 5)
ElseIf strTmp2 Like ".htm?" ' 命中
strLink = Mid(strTmp, l, j - l + 4)
End If
Exit For
Next
If Len(strLink) Then
strLinkList = strLinkList & strLink & vbNewLine
strLink = Empty
Else ' 未命中
MsgBox "提示:該網頁存在無效鏈接。", vbCritical, "注意"
'-----------------------------
' TODO: 如果要繼續分析,則不編寫代碼
' 如果直接退出,則加入:
' bErr = True
' Exit Do
'-----------------------------
End If
l = InStr(l + 7, strTmp, "http://")
Loop
If bErr Then
MsgBox "程序運行時發生錯誤。", vbExclamation, "提示"
End If
『肆』 VB怎麼獲取網頁源碼
1)使用MICROSOFT INTERNET TRANSFER CONTROL的,代碼如下:
Dim strhtml As String
Dim STRURL As String
STRURL="http://www.sijiqing.com"
strhtml = Inet1.OpenURL(STRURL)
2)用System.Net命空間下的HttpWebRequest來取得,代碼如下:
Dim url As String=" http://mgxx520.blog.com.cn" ' 網址
Dim httpReq As System.Net.HttpWebRequest
Dim httpResp As System.Net.HttpWebResponse
Dim httpURL As New System.Uri(url)
httpReq = CType(WebRequest.Create(httpURL), HttpWebRequest)
httpReq.Method = "GET"
httpResp = CType(httpReq.GetResponse(), HttpWebResponse)
httpReq.KeepAlive = False ' 獲取或設置一個值,該值指示是否與 Internet資源建立持久連接。
Dim reader As StreamReader = _
New StreamReader(httpResp.GetResponseStream,
System.Text.Encoding.GetEncoding(-0))
Dim respHTML As String = reader.ReadToEnd() 'respHTML就是網頁源代碼.
『伍』 vb 獲取網頁指定內容,求代碼
我用如下代碼測試了。說明你要找的元素不存在。代碼應該沒問題
PrivateSubCommand1_Click()
Text1.Text=WebBrowser1.Document.getElementsByName("key")(0).Value
EndSub
PrivateSubForm_Load()
WebBrowser1.Navigate"http://www.yt969.com/"
EndSub
PrivateSubWebBrowser1_DocumentComplete(ByValpDispAsObject,URLAsVariant)
Text1.Text=WebBrowser1.Document.getElementsByName("key")(0).Value
EndSub
推薦用下面的方法,先獲取源碼,在做字元串分析。
FunctionGetHttpPage(GetUrl)
DimxmlHttp
SetxmlHttp=CreateObject("MSXML2.serverXMLHTTP.6.0")
xmlHttp.Open"GET",GetUrl,False
xmlHttp.setTimeouts10000,10000,10000,10000
'第一個數值:解析DNS名字的超時時間10秒
'第二個數值:建立Winsock連接的超時時間10秒
'第三個數值:發送數據的超時時間15秒
'第四個數值:接收response的超時時間15秒
'xmlHttp.setRequestHeader"Cookie",Cookie
OnErrorResumeNext
xmlHttp.send
IfErr.Number=-2147012894Then
GetHttpPage="$False$"
ExitFunction
EndIf
IfxmlHttp.readystate<>4Then
SetxmlHttp=Nothing
GetHttpPage="$False$"
ExitFunction
EndIf
GetHttpPage=BytesToBstr(xmlHttp.responseBody,"utf-8")
SetxmlHttp=Nothing
EndFunction
PublicFunctionBytesToBstr(Body,Cset)
DimobjStream
SetobjStream=CreateObject("adodb.stream")
objStream.Type=1
objStream.Mode=3
objStream.Open
objStream.WriteBody
objStream.Position=0
objStream.Type=2
objStream.Charset=Cset
BytesToBstr=objStream.ReadText
objStream.Close
SetobjStream=Nothing
EndFunction
『陸』 請問如何用VB獲取網頁源碼
使用Inet控制項獲取網頁源碼。
Internet Transfer 控制項實現了兩種廣泛使用的 Internet 協議: 超文本傳送協議(HyperText Transfer
Protocol)(HTTP) 和文件傳送協議(File Transfer Protocol) (FTP)。使用 Internet Transfer
控制項可以通過 OpenURL 或 Execute 方法連接到任何使用這兩個協議的站點並檢索文件。
PrivateSubCommand1_Click()
DimstrhtmlAsString
DimSTRURLAsString
STRURL="http://www..com"
strhtml=Inet1.OpenURL(STRURL)
Text1=strhtml
EndSub
『柒』 VB如何獲取網頁的內容
vb6,新建一個工程粘貼以下代碼,馬上運行,一切OK!!!!!!
Private Sub Form_Load()
a = getHTTPPage("http://ip138.com/ip2city.asp")
b = Split(a, "[")(1)
c = Split(b, "]")(0)
MsgBox c
End Sub
Function getHTTPPage(url)
On Error Resume Next
Dim http
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "GET", url, False
getHTTPPage = http.Send()
'MsgBox http.ReadyState
If http.ReadyState <> 4 Then
MsgBox "無法連接伺服器"
Exit Function
End If
getHTTPPage = BytesToBstr(http.responseBody, "GB2312")
Set http = Nothing
End Function
Function BytesToBstr(body, Cset)
Dim objstream
Set objstream = CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode = 3
objstream.Open
objstream.Write body
objstream.position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
Set objstream = Nothing
End Function
『捌』 VB6.0: 求獲取某個網頁所有HTML的代碼
'使用URLDownloadToFile這個API可以實現你想要的功能。
'聲明API函數
"urlmon"Alias"URLDownloadToFileA"(_
ByValpCallerAsLong,_
ByValszURLAsString,_
ByValszFileNameAsString,_
ByValdwReservedAsLong,_
ByVallpfnCBAsLong_
)AsLong
'下載網頁源碼
PublicFunctionDownloadFile(ByValstrURLAsString,ByValstrFileAsString)AsBoolean
DimlngReturnAsLong
lngReturn=URLDownloadToFile(0,strURL,strFile,0,0)
IflngReturn=0ThenDownloadFile=True
EndFunction
PrivateSubCommand1_Click()
Debug.PrintDownloadFile("http://..com/question/12376048.html","D:1.html")
EndSub
或者使用WinHTTP、XMLHTTP對象
『玖』 VB如何獲取網頁中文字
首先需要載入需要獲取網頁文的網址,然後根據WebBrowser1.document.body.innertext來獲取文字,可參考下面部分代碼
PrivateSubcmdcommand1_click()
WebBrowser1.navigate"具體網頁地址"
EndSub
PrivateSubwebbrowser1_documentcomplete(ByValpDispAsObject,URLAsVariant)
txtText1=WebBrowser1.document.body.innertext
EndSub
『拾』 VB獲取網頁內容
'Text1=<spanclass="H">馬丁靴機車靴女靴子短靴</span>
PrivateSubCommand1_Click()
i=InStr(1,Text1,"<spanclass="&Chr(34)&H&Chr(34)&">")+17
i1=InStr(1,Text1,"</span>")
MsgBoxMid(Text1,i,i1-i)
EndSub