如何用Excel进行网页数据采集

如何用Excel进行网页数据采集,第1张

excel采集互联网信息

用EXCEL采集网页信息,其实并不难,需要开启宏功能,用VBA编写采集代码,就可以将信息采集到表格里了。

Function ReadWeb(strURL)

以下是关键代码:编写一个采集函数

 ' MsgBox strURL

  'Range("H2")Value = strURL

  t = Timer '开始计时

  tt = t

  nm = Left(Range("J3")Value, 2) & Range("J4")Value

  url2 = ">

  Set objWeb = CreateObject("MSXML2XML>

  objWebOpen "Get", strURL, False, "", ""

  objWebsend

  arrBytes = CStr(objWebresponseBody) 

  mytime2 = mytime2 + Timer - tt '计时 

   

  strReturn = "" '以下将二进制数据流转换为中文文本

  For i = 1 To LenB(arrBytes)

      Chr1 = AscB(MidB(arrBytes, i, 1))

   

      If Chr1 < &H80 Then

          strReturn = strReturn & Chr(Chr1)

          Else

          Chr2 = AscB(MidB(arrBytes, i + 1, 1))

          strReturn = strReturn & Chr(CLng(Chr1) &H100 + CInt(Chr2))

          i = i + 1

      End If

  Next i

     ReadWeb = strReturn

End Function

有些网页写得很复杂,iframe内又套iframe,直接从IE对象获取内层iframe中的元素是获取不到的。需要逐层进去,一层也不可跳过。对于每个iframe,用 fcontentWindowDocumentgetElementByid 获取iframe内的子元素。而不是直接从ieDocument去getElementByid。

整个连接起来看是很长的:ieDocumentgetElementByid("第一层iframe")contentWindowDocumentgetElementByid("第二层ifrem")

属性选择器

其中一个iframe的名字是随机生成的,后面的整数每次都不同。可以改成用querySelector函数,用通配符匹配。

End语句。Visual Basic遇到End语句就结束运行。

Trim去除前后空格。Str整数转字符串。Round小数取整。InStr搜索匹配子字符串。

循环语句while wend、while do loop……两种?

可以在选中单元格后,按“数据-导入外部数据-新建WEB查询”,会d出窗口,在其中的“地址”栏中输入要导入的网页地址,再按“转到”,就能在小窗口中显示目标网页,然后按提示选择想要导入的内容即可。

以上就是关于如何用Excel进行网页数据采集全部的内容,包括:如何用Excel进行网页数据采集、用Excel中的vba获取网页内容填写网页表单、EXCEL各个指定单元格获取网页中的指定数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9721014.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存