有没有办法只使用VBA从301重定向获取返回的URL?

时间:2013-12-27 17:47:24

标签: vba excel-vba http-redirect excel

我有一长串公司的产品编号,稍后在代码中,这些数字必须转换为HTML,然后链接到产品的相应页面。页面的链接有许多301重定向,从凌乱/旧/错误/等等到新的SEO友好URL。

例如,像这样:

  

site.com/12345

将被重定向到此页面:

  

site.com/product-name-12345

我没有列表来比较产品名称,因为它们是每天创建和销毁的,并且网站会动态创建URL(而不是从某种数据库或其他东西中绘制)。

由于很多复杂的原因,我只能访问Excel来完成这项任务(万岁!)。我写了(坏)代码来打开Internet Explorer,转到短URL,然后将新地址复制到需要的地方。这有效,但速度非常慢(正如您所料)。我想知道是否有一个解决方案不依赖等待IE打开,但是只能在VBA中运行?

我找到了很多方法来查看重定向是否发生,并且我找到了很多方法来获取标头,但是我还没有找到一种方法来获取最终的URL。这些主要集中在WinHTTP.WinHTTPRequest.5.1上,但似乎没有任何类型的WinHTTPResponse可以调用(如.NET中的HttpResponse)。

非常感谢任何帮助,谢谢!

编辑:在Reddit的Excel论坛的另一篇文章中回答了这个问题。我需要的答案是.Send(1)在.Send之后(如果有其他人需要的话)。

Discussion can be read here

1 个答案:

答案 0 :(得分:1)

在Reddit的Excel论坛的另一篇文章中回答了这个问题。我需要的答案是.Send(1)在.Send之后(如果有其他人需要的话)。