Excel HTTP请求占用10+;秒

Excel HTTP请求占用10+;秒,excel,vba,web-scraping,xmlhttprequest,Excel,Vba,Web Scraping,Xmlhttprequest,有人能解释一下为什么这段代码要花这么长时间才能加载吗?我在浏览器中试用过,加载只需大约4秒钟。是否有任何方法可以禁用VBA web scrape中的图像加载 (注意,等待在发送线上,加载时间超过10秒,在我看来这是多余的?) Xmlhttprequest.send不加载图像,也不加载js代码。这将获取url引用的资源的原始客户端代码。在这段代码中没有什么可以优化的 您可以做的是使请求异步,并使用事件处理程序来处理传入的数据。可以让多个Xmlhttprequest对象并行下载数据 关于如何在exc

有人能解释一下为什么这段代码要花这么长时间才能加载吗?我在浏览器中试用过,加载只需大约4秒钟。是否有任何方法可以禁用VBA web scrape中的图像加载

(注意,等待在
发送
线上,加载时间超过10秒,在我看来这是多余的?)


Xmlhttprequest.send不加载图像,也不加载js代码。这将获取url引用的资源的原始客户端代码。在这段代码中没有什么可以优化的

您可以做的是使请求异步,并使用事件处理程序来处理传入的数据。可以让多个Xmlhttprequest对象并行下载数据

关于如何在excel中正确执行此操作,有一篇不错的博文:


它描述了如何进行异步调用,如何以及为什么对事件处理程序使用包装类。

接受的答案并不完全正确

有更多的请求选项要考虑,根据网站的不同,效率会大大不同,没有一个是最快或最慢的。有时,其中一个请求通常需要超过10秒,而另一个请求只需要2秒

Set XMLHTTP = CreateObject("MSXML2.XMLHTTP.6.0")
Set http = CreateObject("WinHttp.WinHttpRequest.5.1")

我的第一次装载大约需要8秒钟。。我猜是因为加载了javascripts。除此之外,在浏览器中加载速度更快,因为有些项目是缓存的。太好了,谢谢你的info@Shadow。我会看看是否能在我的项目中实施它
Set XMLHTTP = CreateObject("MSXML2.XMLHTTP.6.0")
Set http = CreateObject("WinHttp.WinHttpRequest.5.1")