使用 XMLHTTP 使用 vba 进行网页抓取 [英] web scraping with vba using XMLHTTP
本文介绍了使用 XMLHTTP 使用 vba 进行网页抓取的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想从网页 http: 获取一些数据://www.eex.com/en/market-data/power/derivatives-market/phelix-futures.
如果我使用旧的 InternetExplorer 对象(下面的代码),我可以浏览 HTML 文档.但我想使用 XMLHTTP
对象(第二个代码).
子IEZagon()'我们定义了基本变量变暗为对象Dim TDelement, TDelementsDim AnhorLink, AnhorLinks'在您的 VBA 项目中间接添加Microsoft Internet Controls"引用Set ie = CreateObject("InternetExplorer.Application")与即.可见 = 真.navigate ("[URL]http://www.eex.com/en/market-data/power/derivatives-market/phelix-futures[/URL]")而 ie.ReadyState <>4事件温德设置 AnhorLinks = .document.getElementsbytagname("a")设置 TDelements = .document.getElementsbytagname("td")对于 AnhorLinks 中的每个 AnhorLinkDebug.Print AnhorLink.innertext下一个对于 TDelements 中的每个 TDelement调试.打印 TDelement.innertext下一个结束于设置 ie = 无结束子
使用带有 XMLHTTP 对象的代码:
Sub FuturesScrap(ByVal URL As String)将 XMLHttpRequest 淡化为 XMLHTTP将 HTMLDoc 淡化为新的 HTMLDocument设置 XMLHttpRequest = 新建 MSXML2.XMLHTTPXMLHttpRequest.Open "GET", URL, FalseXMLHttpRequest.send而 XMLHttpRequest.readyState <>4事件温德Debug.Print XMLHttpRequest.responseTextHTMLDoc.body.innerHTML = XMLHttpRequest.responseText使用 HTMLDoc.body设置 AnchorLinks = .getElementsByTagName("a")设置 TDelements = .getElementsByTagName("td")对于 AnchorLinks 中的每个 AnchorLinkDebug.Print AnhorLink.innerText下一个对于 TDelements 中的每个 TDelement调试.打印 TDelement.innerText下一个结束于结束子
我只得到基本的 HTML:
<头><title>未找到资源</title><link rel='stylesheet' type='text/css' href='/blueprint/css/errorpage.css'/>头部><身体><table class="header"><tr><td class="CMTitle CMHFill"><span class="large">未找到资源</span></td></tr><div class="body"><p style="font-weight:bold;">请求的资源不存在.</p>
<table class="footer"><tr><td class="CMHFill"></td></tr>