VBA将值从Google Analytics [在IE中打开]网站复制到Excel
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA将值从Google Analytics [在IE中打开]网站复制到Excel相关的知识,希望对你有一定的参考价值。
我以前做过很少的VBA + IE连接,特别是关于选择不同的按钮和列表[包括自动数据输入,例如登录,日期等]。但是,我还没有将IE中的特定数据复制到excel之前。
问题是如何从IE中提取这些数据到excel。即数字257(每天都在变化)。另外一个问题是IE页面的结构[这是Google Analytics]。在你告诉我我可以在GA页面上使用“导出”之前,请注意我的大多数选项都被阻止了。此外,谷歌驱动器和谷歌文档是不合适的。
源代码的一部分是:
<div class="_GAlF _GALn">P R R</div>
<div class="_GAef" id="ID-layout-1536671725872"><div class="_GANY"><div class="_GAxN"><img width="75" height="18" class="_GANU" alt="" src="s/cleardot.gif"></div><div><div class="_GAeS _GAHeb _GAA6">257</div></div><div><span class="_GAkhb">% of Total:</span> <span class="_GAvQb">0.04%</span> <span class="_GAqs">(601,038)</span></div></div></div>
<div class="_GANY"><div class="_GAxN"><img width="75" height="18" class="_GANU" alt="" src="s/cleardot.gif"></div><div><div class="_GAeS _GAHeb _GAA6">257</div></div><div><span class="_GAkhb">% of Total:</span> <span class="_GAvQb">0.04%</span> <span class="_GAqs">(601,038)</span></div></div>
<div class="_GAxN"><img width="75" height="18" class="_GANU" alt="" src="s/cleardot.gif"></div>
<div><div class="_GAeS _GAHeb _GAA6">257</div></div>
<div class="_GAeS _GAHeb _GAA6">257</div>
清洁截图:
是否可以通过“ID-layout”识别该值,这似乎是这个特定盒子的独特之处?然而,无论如何,这将不得不下降到257的价值区域。请指教。谢谢。
这就是我得到的问题:
对于显示的html,您可以尝试使用父ID和本地类属性选择器组合缩小范围
ThisWorkbook.Worksheets("Sheet1").Cells(1,1) = ie.document.querySelector("#ID-layout-1536671725872 [class='_GAeS _GAHeb _GAA6']").innerText
并非所有选择器都显示在下面的查询框中,但这是结果:
在给定小HTML样本的情况下,添加id选择器以尝试和本地化类选择器。 "#"
是id CSS选择器,"[]"
是属性选择器。
选择器组合通过.querySelector
文档方法应用。如果您使用IE8以上,这应该工作正常。
如果页面不是JS重/慢加载你可能会放弃IE开放发出XMLHTTP请求:
Dim html As New HTMLDocument '<==Tools > references > add reference to microsoft html object library
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", URL, False
.send
sResponse = StrConv(.responseBody, vbUnicode)
sResponse = Mid$(sResponse, InStr(1, sResponse, "<!DOCTYPE "))
With html
.body.innerHTML = sResponse
ThisWorkbook.Worksheets("Sheet1").Cells(1,1) = .querySelector("#ID-layout-1536671725872 [class='_GAeS _GAHeb _GAA6']").innerText
End With
End With
类“_GAeS _GAHeb _GAA6”仅用于此行吗?
如果是,这应该工作:
IE.document.getElementsByClassName("_GAeS _GAHeb _GAA6")(0).innerText
以上是关于VBA将值从Google Analytics [在IE中打开]网站复制到Excel的主要内容,如果未能解决你的问题,请参考以下文章
javascript 找到所有空字段的简单脚本,将其名称添加到字符串,通过页面休假的自定义事件将值发送到Google Analytics。