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

时间:2015-03-30 18:32:49

标签: javascript windows vba browser

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

1 个答案:

答案 0 :(得分:0)

我不确定你是什么意思通过拉动源代码而不去网页。同样,你这样做是什么意思"记忆中"?每个应用程序都在RAM中运行,内存计算只有你保持不同内存中的整个数据库没有时不时地将表/列的位加载到内存中。请提供一些说明。

模拟浏览

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

这将在后台打开Goog​​le。

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