使用vbscript下载提示保存文件

时间:2014-10-10 07:04:17

标签: vbscript download

我正在使用VBscript使用IE打开网页 - 登录 - 并将一些数据保存到文件中。

为什么要使用IE?   - 我可以使用VBScript与网页进行交互   - 该网页使用ajax进行验证和登录,因此只需使用MSXML2.XMLHTTP即可。

在IE登录网站后,我将它指向我要保存为文件的页面,问题是这个页面正在返回JSON数据(filename.json) - 所以IE提示打开/保存/保存而不是而不仅仅是打开页面,所以我无法保存页面的数据。

代码如下。非常感谢任何帮助。

Set IE = WScript.CreateObject("InternetExplorer.Application", "IE_")
IE.Visible = True
IE.Navigate "https://www.somesite.com"
Wait IE
With IE.Document
    .getElementByID("username").value = "myusername"
    .getElementByID("password").value = "mysecret"
    .getElementsByName("Login")(0).Click
End With
Wait IE
'# all fine here, logged in and redirected to members page

IE.Navigate  "https://www.somesite.com/api/data"
' # this link returns json data
'# this is where everything stops because Im getting a download/save as prompt in IE
编辑:好的,我能够让IE显示内容而不是通过编辑注册表来下载它来将.json文件视为文本文件,现在问题是页面是json文件,而不是HTML文件,所以我不能像普通的HTML页面一样调用IE.Document.Body.InnerHTML来获取它的内容。

我如何获取页面内容并将其分配给变量以便我可以处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

哦,我把它放在我的代码中:

Set objShell = CreateObject("WScript.Shell") objShell.RegWrite "HKEY_CLASSES_ROOT\.json\Content Type", "text/plain", "REG_SZ

这样,文件在IE中被视为文本文件,它只会在页面中打开。然后我可以使用正常的objIE.Document.Body.InnerText来获取json内容。然后我将该变量传递给我的函数,将其全部解码。

希望这有助于某人,因为我发现谷歌上的所有结果都没有帮助我。唯一的原因我发布在这个旧线程上!

干杯, 罗斯