excel vba抓取网页数据( VBA获取网页的全部源码内容_218.png )

优采云 发布时间: 2021-09-09 09:06

  excel vba抓取网页数据(

VBA获取网页的全部源码内容_218.png

)

  

  VBA 获取网页的所有源内容_218.png

  获取网页的完整源码只是获取网络资源的一种方式,但是返回数据的格式不同,做了一定的处理!首先要有一个Function来提取网络资源:

  '-----------------------------------------------

'|获取网络数据

'-----------------------------------------------

'|注意:当使用Body提取整个页面时必须使用StrConv转换成字符串

'| HTML.body.innerHTML = StrConv(.responsebody, vbUnicode)

'-----------------------------------------------

Function getWebData(ByVal URL As String, Optional ByVal Method As String = "GET", Optional ByVal ReturnType As String = "Text", Optional ByVal Async As Boolean = False, Optional ByVal Username As String = "", Optional ByVal Password As String = "")

On Error Resume Next

'处理变量

Method = IIf(UCase(Method) = "GET", "GET", "POST")

'创建对象

Dim xmlHttp As Object

Set xmlHttp = CreateObject("Microsoft.XMLHTTP") ' "Msxml2.ServerXMLHTTP"

'发送请求

xmlHttp.Open Method, URL, Async, Username, Password

xmlHttp.Send

'等待响应

Do While xmlHttp.ReadyState 4

DoEvents

Loop

'得到请求数据

If xmlHttp.ReadyState = 4 Then

'根据要求返回不同结果

Select Case UCase(ReturnType)

Case "TEXT"

getWebData = xmlHttp.responsetext

Case "BODY"

getWebData = xmlHttp.responsebody

Case "STREAM"

getWebData = xmlHttp.responseStream

Case "XML"

getWebData = xmlHttp.responseXML

Case Else

getWebData = xmlHttp.responsetext

End Select

Else

getWebData = "调用失败,错误代码:" & xmlHttp.Status '返回错误结果

End If

'销毁对象

Set xmlHttp = Nothing

End Function

  第二步是提取数据。应该使用'responsebody'的类型。由于返回的类型不是字符串,因此需要对其进行处理并转换为字符串。具体方法如下:

  '提取整个页面的HTML

MsgBox openTXT(StrConv(getWebData("http://data.eastmoney.com/stock/tradedetail.html", "get", "body"), vbUnicode))

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线