vbwebbrowser獲取網頁源碼
Ⅰ vb 快速的取得網頁源碼和提取其中內容
如下函數可以實現你要的功能:
Function TestRegExp(ByVal myString$, ByVal myPattern$, Optional myMark$ = "gimt", Optional myRepString$)
If myString = "" Or myPattern = "" Then
TestRegExp = ""
Debug.Print "數據不能為空"
Exit Function
End If
'Create objects.
Dim objRegExp As RegExp
Dim objMatch As Match
Dim colMatches As MatchCollection
Dim RetStr As String
Set objRegExp = New RegExp
' 正則式
objRegExp.Pattern = myPattern
'IIf(InStr(myPattern, "s") <> 0, "", myPattern)
' 是否區分大小寫
objRegExp.IgnoreCase = IIf(InStr(LCase$(myMark), "i") > 0, True, False)
' 是否全局
objRegExp.Global = IIf(InStr(LCase$(myMark), "g") > 0, True, False)
' 是否換行
objRegExp.MultiLine = IIf(InStr(LCase$(myMark), "m") > 0, True, False)
If objRegExp.Test(myString) Then
If InStr(myMark, "r") > 0 Then
Debug.Print "正在替換"
RetStr = objRegExp.Replace(myString, myRepString)
Debug.Print IIf(RetStr <> "", "替換結果" & Left(RetStr, 10), "沒搜索到可替換字元")
Else
Debug.Print "正在搜索"
Set colMatches = objRegExp.Execute(myString) ' Execute search.
'MsgBox colMatches.Count
For Each objMatch In colMatches ' Iterate Matches collection.
'RetStr = RetStr & objMatch.FirstIndex
RetStr = RetStr & objMatch.Value & vbCrLf
Next
Debug.Print IIf(RetStr <> "", "搜索結果" & Left(RetStr, 10), "沒搜索到匹配結果")
End If
Else
RetStr = ""
Debug.Print "沒找到任何匹配結果,請檢查正則式的是否正確"
End If
TestRegExp = RetStr
End Function
Ⅱ VB:如何通過VB獲取某個網站的所有頁面源代碼
兩種實現方式:
1、先用WebBrowser控制項、iNet控制項或xmlhttp組件獲取網站首頁代碼(這個網上有一大堆介紹,就不啰嗦了),然後分析代碼,找出其中的超鏈接,然後再逐個獲取其頁面代碼,這里要注意的是,要區分外鏈和內鏈,外鏈就不要去獲取代碼了(否則的話如果網站上有個網路的鏈接,那麼你的程序就要去獲取網路的頁面了);另外還要控制獲取的層數(比如說一級子頁面是第二層,二級子頁面是第三層),否則的話遇到大型網站你的程序很可能進入死循環。
2、利用瀏覽器的緩存來獲取,主要是IE的緩存。windows系統有專門的對IE緩存進行讀寫操作的API函數。要想獲取某個網站的源碼,可以用IE打開這個網站,然後把裡面的鏈接都手工點擊一遍,使頁面代碼能被IE自動放入緩存文件夾中即可。當然,如果網站比較大,這個過程可能會比較繁復。然後再通過程序遍歷IE的整個緩存系統,把與該網站相關的所有資源都提取出來。通過這種方法,不但可以提取HTML代碼,還有js代碼、css代碼,以及頁面上的所有圖片、動畫、視頻等資源。我個人比較喜歡這種方法。
Ⅲ 如何用vb得到網頁的源代碼
1 先載入網頁:
Private Sub Form_Load()
WebBrowser1.Navigate "http://..com/question/123877723.html"
End Sub
2 載入完成後取字元串到文本框:
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Dim doc As Object, objhtml As Object
Dim strhtml As String
On Error GoTo errorsub
Me.Caption = WebBrowser1.LocationName & " 載入完成"
If MaxWebNum <= 0 Then
Set doc = WebBrowser1.Document
Set objhtml = doc.body.createtextrange()
If Not IsNull(objhtml) Then
strhtml = WebBrowser1.Document.body.innertext
Text1.Text = strhtml
End If
End If
Exit Sub
errorsub:
Text1.Text = "錯誤!!!"
End Sub
Ⅳ VB WebBrowser 獲取網頁內容~
private
sub
command1_click()
set
vdocs
=
webbrowser1.document.getelementsbytagname("ul")
text1.text
=
vdocs(32).innertext
end
sub
不過,你既然都打開網頁了,已經看到了,還提取它干什麼?
如果你是想用軟體自動提取這個信息,到其它地方用。那就不要用webbrowser,這個太慢。直接用
inet控制項,或者用xmlhttp等獲取源碼再取信息。
Ⅳ VB如何獲取webbrowser源碼指定文本
第一個紅框的文本:
WebBrowser1.Document.getElementById("list_uin").getElementsByTagName("label")(0).innerText
第二個紅框的文本:
WebBrowser1.Document.getElementById("list_uin").getElementsByTagName("label")(1).innerText
Ⅵ 用vb獲取任一網頁源代碼,要完整的!!!,可以用webbrowser控制項
'你把下面的代碼保存為Form1.frm,然後雙擊打開該文件,運行後按提示即可看到結果。
'呵呵,夠詳細了,再不會我也沒辦法了。
'====文件Form1.frm====
VERSION 5.00
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 5265
ClientLeft = 60
ClientTop = 450
ClientWidth = 9000
LinkTopic = "Form1"
ScaleHeight = 5265
ScaleWidth = 9000
StartUpPosition = 3 '窗口預設
Begin VB.TextBox Text2
Height = 3735
Left = 120
MultiLine = -1 'True
ScrollBars = 2 'Vertical
TabIndex = 2
Top = 480
Width = 8655
End
Begin VB.TextBox Text1
Height = 270
Left = 2040
TabIndex = 1
Text = "我的家"
Top = 120
Width = 4095
End
Begin VB.CommandButton Command1
Caption = "獲取HTML源碼"
Height = 615
Left = 3480
TabIndex = 0
Top = 4440
Width = 1575
End
Begin VB.Label Label2
Caption = "注意:獲取源碼之前必須先用IE打開網址,然後輸入窗口標題關鍵字。如www.51.com的標題關鍵字是:我的家"
Height = 615
Left = 240
TabIndex = 4
Top = 4440
Width = 3135
End
Begin VB.Label Label1
Caption = "請輸入IE窗口標題:"
Height = 255
Left = 120
TabIndex = 3
Top = 120
Width = 1815
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Function GetIeHtml(IeTitle As String) As String
Dim oShellApp: Set oShellApp = CreateObject("Shell.Application")
Dim oShellAppWindows: Set oShellAppWindows = oShellApp.Windows
Dim owin
'獲取彈出的IE窗口
For Each owin In oShellAppWindows '獲取彈出的IE窗口
If LCase(TypeName(owin.Document)) = "htmldocument" And _
InStr(1, owin.LocationName, IeTitle, vbTextCompare) > 0 Then '如果找到符合條件的IE窗口
GetIeHtml = owin.Document.activeElement.Document.documentElement.innerHTML '此句可獲得完整html代碼
GoTo Mend '退出
End If
Next
Mend:
Set oShellAppWindows = Nothing
Set oShellApp = Nothing
Set owin = Nothing
End Function
Private Sub Command1_Click()
Dim S As String
S = GetIeHtml(Text1.Text) '表示獲得標題含有"我的家"的html代碼
Text2.Text = S
End Sub
Private Sub Form_Load()
'Shell "explorer.exe ""http://www.51.com/""", vbNormalNoFocus
End Sub
Ⅶ 如何用vb.net獲得網頁的源代碼
Dim url As String=" 網址"
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 不用webbrowser 如何讀取網頁元素
還可以使用xmlhttp,也就是類似於JavaScript的Ajax的方式:
Set xmlhttp = CreateObject("MicroSoft.XMLHTTP") '這三行是獲取網頁源碼
xmlhttp.Open "get", "網址寫在這", False
xmlhttp.Send
Set html = CreateObject("htmlfile") '這兩行是把網頁源碼重新解析為html文檔
html.Write xmlhttp.responseText
Set Acollection = html.All.tags("input") '這是獲取html中的所有input元素
……後面的代碼就跟你的完全一樣了
這種方式,只會下載網頁的html代碼,不會下載網頁中包含的圖片、腳本、樣式表等數據,而且不需要渲染和顯示出網頁內容,所以速度比用WebBrowser控制項要快得多。