LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

[VB]如何提取网页的数据

admin
2014年3月25日 0:16 本文热度 5150

用XML和HTMLDocument处理的
程序不用引用什么控件或库,都是动态创建的对象
只需要一个按钮和多行显示的文本框就可以实现了

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取得网页数据内容
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对象分析出网页内包含的文本
HTMLDoc.body.innerHTML = HTMLStr
DataInfo = HTMLDoc.body.innerText '从网页中取得全部文本信息
'取得相关的资料位置
S = InStr(1, DataInfo, "报表日期")
E = InStr(S, DataInfo, "主编信箱")
'提取资料文本
DataInfo = Mid(DataInfo, S, E - S - 4)
'将文本分割成以行为单位的数组
TempArray = Split(DataInfo, vbCrLf)
'为了让最后输出的文本在格式上比较好看,所以就取出信息字段的最大字节数作为格式化标准
For X = 0 To 66
Info(X) = RTrim(TempArray(X)) '将右边的空格符去掉
TitleByte = LenB(StrConv(Info(X), vbFromUnicode)) '取字段标题字节数
If TitleByte > TitleMaxByte Then TitleMaxByte = TitleByte '纪录最大字节数
Next X
'将标题内容统一格式化为最大字节数,以空格填充
For X = 0 To 66
'判断如果是大类标题就不处理
If Right(Info(X), 1) <> ":" Then
TitleByte = LenB(StrConv(Info(X), vbFromUnicode)) '取当前处理的字段标题字节数
Info(X) = Info(X) & String(TitleMaxByte - TitleByte, " ") & vbTab '用空格填充标题内容
End If
Next X
'将数据放入字段行数组中
For X = 67 To UBound(TempArray)
If Y >= 67 Then Y = 0: I = I + 1
'判断如果是大类标题就不处理
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
'将处理好的行文本集合到一个文本变量中
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

其实效率差不多的,只是少了下载图片和处理显示网页的时间,
用WebBrowser的方法我这里测试的是7秒,用这个方法是5秒。
不过这种方法理论上说是要快点。

该文章在 2014/3/25 0:19:13 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved