通过“ VBA”在“ IE数据抓取”中连接和断开Internet

时间:2018-08-16 16:07:25

标签: excel-vba internet-explorer

我正在从活动服务器页面(ASP)抓取每秒更改的数据。我需要加载页面,断开Internet连接(使数据保持静态和未接触状态),进行抓取,连接Internet并刷新页面等等。 这是主要问题: 当VBA单击过滤器按钮时,服务器将刷新数据。我同时需要所有数据(3个过滤器)。数据随时间变化(时间范围数据),每次单击过滤器数据都会被服务器刷新。我需要在更换过滤器之前停止数据刷新。这是顺序: 1页加载 从服务器2停止(或保持)数据刷新(例如,断开IE与互联网的连接) 3-点击过滤器并抓取数据(在我的情况下:三步点击过滤) 4-从服务器开始刷新数据(例如,将IE连接到Internet) 5循环整个阶段 *服务器在每次单击过滤器时自动刷新数据* *断开Internet连接只是为了防止服务器刷新以便在特定时间抓取所有数据* *单击一个过滤器需要5秒钟,这会延迟数据抓取时间范围* 我手动尝试了此顺序(通过关闭/打开笔记本电脑的WiFi),它可以正常工作。但是我需要一个代码来自动执行。

示例代码(在点击行中使用断点以查看过程):

 Sub Macro1()

' 'Macro1宏 ' 昏暗的IE作为对象 昏暗x整数 设置IE =否     设置IE = CreateObject(“ InternetExplorer.Application”)     使用IE       .Visible = True       .navigate(“ https://www.dailyfx.com/eur-usd”)     IE.Busy = True时执行:DoEvents:循环     在IE.readystate <>时执行4:DoEvents:循环     当IE.readystate =“ complete”:DoEvents:Wend     结尾为

'loop
IE.document.getElementsByClassName("TopIcon MwIcon MwQuery")(0).Click
IE.document.getElementById("FilterIndex").getElementsByTagName("div").Item(0).Click
x = 1
'data scraping LVL1 with first cache object
IE.document.getElementById("FilterIndex").getElementsByTagName("div").Item(0).Click
'data scraping LVL2 with second cache object
x = 2
IE.document.getElementById("FilterIndex").getElementsByTagName("div").Item(0).Click
'data scraping LVL3 with third cache object
x = 3
'loop
IE.Quit

' 结束

谢谢!

0 个答案:

没有答案