VBA加载网页并提取内存中的数据

VBA load webpage and pull data in memory

本文关键字:数据 内存 提取 加载 网页 VBA      更新时间:2023-09-26

如果我只是想看看这是否可能。因此,对于任何网站,如果我想从网站的另一个页面提取源代码(加载它等),而不去实际的网页,这可能吗?例如,这可以在内存中完成吗?例如,如果我有一个像cnn.com这样的网站,而不是真正点击文章链接并转到该页面,如果我只想从该页面提取信息,但仍停留在主页上,这可能吗?如果可能的话,我该怎么做呢?谢谢你的帮助。

我不知道你说的不去网页就拉源代码是什么意思。同样,你说"在记忆中"这样做是什么意思?每个应用程序都在RAM中运行,内存计算的不同之处仅在于您将整个数据库保存在内存中,而不不时将表/列的位加载到内存中。请提供一些澄清。

模拟浏览

您可以使用"InternetExplorer.Application"对象加载网页并"留在页面上":(http://www.analystcave.com/web-scraping-tutorial/#Excel_IE_Object)。

这将在后台打开谷歌。

Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = False 
IE.Navigate "http://www.google.com/"
Do While IE.Busy 'We need to wait until the page has loaded
  Application.Wait DateAdd("s", 1, Now)
Loop

加载HTML页面(无浏览器)

这将显示没有浏览器作为代理的网页的HTML:

Set XMLHTTP = CreateObject("MSXML2.serverXMLHTTP")
XMLHTTP.Open "GET", "http://www.google.com", False
XMLHTTP.setRequestHeader "Content-Type", "text/xml"
XMLHTTP.send
MsgBox XMLHTTP.ResponseText

(http://www.analystcave.com/web-scraping-tutorial/#XMLHttpRequest_object)