HTTP 请求耗时 10 秒以上
HTTP request taking 10+ seconds
谁能解释为什么加载这段代码需要这么长时间?我已经在浏览器中试过了,加载只需要大约 4 秒。有什么办法可以禁止在 VBA 网络抓取中加载图像?
(请注意,等待时间在 send
行,加载时间超过 10 秒,在我看来这是否过长?)
Sub FetchIndividualURL()
Dim XMLHTTP as Object
Dim HTMLdoc as Object
Set XMLHTTP = CreateObject("MSXML2.serverXMLHTTP")
URL = "http://www.gumtree.com.au/s-ad/lansvale/cars-vans-utes/2011-subaru-forester-x-grey-wagon/1106783884"
With XMLHTTP
.Open "GET", URL, False
.setRequestHeader "Content-Type", "text/xml"
.send
Set HTMLdoc = CreateObject("HTMLFile")
HTMLdoc.body.innerhtml = .responsetext
End With
End Sub
Xmlhttprequest.send 不加载图片,也不加载 js 代码。这将获取 url 引用的资源的原始客户端代码。您无法在此代码中优化任何内容。
您可以做的是使请求异步,并让事件处理程序处理传入的数据。您可以有多个 Xmlhttprequest 对象并行下载数据。
在 excel 中有一篇很好的博客 post 介绍如何正确执行此操作:http://dailydoseofexcel.com/archives/2006/10/09/async-xmlhttp-calls/
它描述了如何进行异步调用,如何以及为什么对事件处理程序使用包装 class。
接受的答案并不完全正确。
需要考虑的请求选项更多,根据网站的不同,效率会有很大差异,none 最快或最慢。有时,其中一个请求经常花费 10 秒以上,而另一个请求仅花费 2 秒。
Set XMLHTTP = CreateObject("MSXML2.XMLHTTP.6.0")
Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
谁能解释为什么加载这段代码需要这么长时间?我已经在浏览器中试过了,加载只需要大约 4 秒。有什么办法可以禁止在 VBA 网络抓取中加载图像?
(请注意,等待时间在 send
行,加载时间超过 10 秒,在我看来这是否过长?)
Sub FetchIndividualURL()
Dim XMLHTTP as Object
Dim HTMLdoc as Object
Set XMLHTTP = CreateObject("MSXML2.serverXMLHTTP")
URL = "http://www.gumtree.com.au/s-ad/lansvale/cars-vans-utes/2011-subaru-forester-x-grey-wagon/1106783884"
With XMLHTTP
.Open "GET", URL, False
.setRequestHeader "Content-Type", "text/xml"
.send
Set HTMLdoc = CreateObject("HTMLFile")
HTMLdoc.body.innerhtml = .responsetext
End With
End Sub
Xmlhttprequest.send 不加载图片,也不加载 js 代码。这将获取 url 引用的资源的原始客户端代码。您无法在此代码中优化任何内容。
您可以做的是使请求异步,并让事件处理程序处理传入的数据。您可以有多个 Xmlhttprequest 对象并行下载数据。
在 excel 中有一篇很好的博客 post 介绍如何正确执行此操作:http://dailydoseofexcel.com/archives/2006/10/09/async-xmlhttp-calls/
它描述了如何进行异步调用,如何以及为什么对事件处理程序使用包装 class。
接受的答案并不完全正确。
需要考虑的请求选项更多,根据网站的不同,效率会有很大差异,none 最快或最慢。有时,其中一个请求经常花费 10 秒以上,而另一个请求仅花费 2 秒。
Set XMLHTTP = CreateObject("MSXML2.XMLHTTP.6.0")
Set http = CreateObject("WinHttp.WinHttpRequest.5.1")