使用VBA进行Web抓取(当HTML <> DOM时)

我在抓取该特定网页的数据时经历了可怕的时间...基本上,当我在浏览器中加载URL并手动点击F12时,但是在以编程方式尝试执行以下操作时,可以在“ DOM资源管理器”中看到所需的信息相同(请参阅下文)HTMLDoc不包含我在“ DOM资源管理器”中可以看到的相同信息...


Public Sub testCode()


    Dim IE As SHDocVw.InternetExplorer

    Dim HTMLDoc As MSHTML.HTMLDocument

    Set IE = New SHDocVw.InternetExplorer

    With IE

        .navigate "https://www.wunderground.com/cgi-bin/findweather/getForecast?query=EIDW"

        While .Busy = True Or .ReadyState <> READYSTATE_COMPLETE: Wend

        Set HTMLDoc = .Document

    End With


End Sub

有人可以帮我访问“ DOM资源管理器”中的信息吗?我知道HTML并不总是您在浏览器中看到的内容,而是创建在浏览器中可以看到的内容的说明,但是必须有一种从HTML以编程方式创建DOM的方法...


另外,我相信我要获取的数据是由脚本或iFrame生成的,但是我一直无法生成我正在寻找的数据。


更新


请参见下面的DOM Explorer图片:

http://img.mukewang.com/5daf13180001c11719201279.jpg

哔哔one
浏览 1429回答 2
2回答

慕丝7291255

最终通过了所有测试,效果非常好,非常感谢您的帮助,但我确实做了几件事-1)调整了API URL,以仅请求我感兴趣的数据,并将单位更改为英语; 2)使用JSON解析器解决方案的过程中,我实际上使用了一系列拆分和循环来解析数据-这样做的一个原因是因为我很难遵循JSON解析代码,而且我不喜欢使用复制和粘贴的代码我不明白,但是我也发现它比使用Rage和Scripting Dictionary解析快60%。无论如何再次感谢!
打开App,查看更多内容
随时随地看视频慕课网APP