狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

[VB]如何提取網(wǎng)頁的數(shù)據(jù)

admin
2014年3月25日 0:16 本文熱度 5415

用XML和HTMLDocument處理的
程序不用引用什么控件或庫,都是動(dòng)態(tài)創(chuàng)建的對象
只需要一個(gè)按鈕和多行顯示的文本框就可以實(shí)現(xiàn)了

Visual Basic code
 
Private Sub Command1_Click()
Dim XMLObject As Object, HTMLDoc As Object
Dim SendStr As String, HTMLStr As String
Dim DataInfo As String, S As Long, E As Long
Dim Info(66) As String, TempArray() As String
Dim X As Long, Y As Long, I As Long, TempStr As String
Dim TitleMaxByte As Long, TitleByte As Long
'初始化變量
Y = 0
I = 0
TitleMaxByte = 0
TempStr = ""
'通過XML取得網(wǎng)頁數(shù)據(jù)內(nèi)容
Set XMLObject = CreateObject("Microsoft.XMLHTTP")
Set HTMLDoc = CreateObject("htmlfile")
XMLObject.open "GET", "http://quotes.money.163.com/corp/1034/code=600221.html", False
XMLObject.setRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded"
XMLObject.Send SendStr
HTMLStr = StrConv(XMLObject.ResponseBody, vbUnicode)
'通過HTMLDocument對象分析出網(wǎng)頁內(nèi)包含的文本
HTMLDoc.body.innerHTML = HTMLStr
DataInfo = HTMLDoc.body.innerText '從網(wǎng)頁中取得全部文本信息
'取得相關(guān)的資料位置
S = InStr(1, DataInfo, "報(bào)表日期")
E = InStr(S, DataInfo, "主編信箱")
'提取資料文本
DataInfo = Mid(DataInfo, S, E - S - 4)
'將文本分割成以行為單位的數(shù)組
TempArray = Split(DataInfo, vbCrLf)
'為了讓最后輸出的文本在格式上比較好看,所以就取出信息字段的最大字節(jié)數(shù)作為格式化標(biāo)準(zhǔn)
For X = 0 To 66
Info(X) = RTrim(TempArray(X)) '將右邊的空格符去掉
TitleByte = LenB(StrConv(Info(X), vbFromUnicode)) '取字段標(biāo)題字節(jié)數(shù)
If TitleByte > TitleMaxByte Then TitleMaxByte = TitleByte '紀(jì)錄最大字節(jié)數(shù)
Next X
'將標(biāo)題內(nèi)容統(tǒng)一格式化為最大字節(jié)數(shù),以空格填充
For X = 0 To 66
'判斷如果是大類標(biāo)題就不處理
If Right(Info(X), 1) <> ":" Then
TitleByte = LenB(StrConv(Info(X), vbFromUnicode)) '取當(dāng)前處理的字段標(biāo)題字節(jié)數(shù)
Info(X) = Info(X) & String(TitleMaxByte - TitleByte, " ") & vbTab '用空格填充標(biāo)題內(nèi)容
End If
Next X
'將數(shù)據(jù)放入字段行數(shù)組中
For X = 67 To UBound(TempArray)
If Y >= 67 Then Y = 0: I = I + 1
'判斷如果是大類標(biāo)題就不處理
If Right(Info(Y), 1) <> ":" Then
If I = 0 Then
Info(Y) = Info(Y) & TempArray(X)
Else
Info(Y) = Info(Y) & "," & TempArray(X)
End If
End If
Y = Y + 1
Next X
'將處理好的行文本集合到一個(gè)文本變量中
For X = 0 To UBound(Info)
If Len(TempStr) = 0 Then
TempStr = Info(X)
Else
TempStr = TempStr & vbCrLf & Info(X)
End If
Next X
'輸出文本
Text1.Text = TempStr
End Sub

其實(shí)效率差不多的,只是少了下載圖片和處理顯示網(wǎng)頁的時(shí)間,
用WebBrowser的方法我這里測試的是7秒,用這個(gè)方法是5秒。
不過這種方法理論上說是要快點(diǎn)。

該文章在 2014/3/25 0:19:13 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved