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各个指定单元格获取网页中的指定数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)