使用vbscript保存带有下载提示的文件



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

为什么要使用IE?-我可以使用VBScript与网页交互-网页使用ajax进行验证和登录,因此简单地使用MSXML2.XMLHTTP是行不通的。

IE登录到网站后,我将其引导到我想保存为文件的页面,问题是这个页面返回JSON数据(filename.JSON),所以IE会提示打开/save/saveas,而不仅仅是打开页面,所以我无法保存页面的数据。

代码如下。非常感谢您的帮助。

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

EDIT:好的,我可以通过编辑注册表将.json文件视为文本文件来获得IE来显示内容,而不是下载它。现在的问题是页面是json文件,而不是HTML文件,所以我不能像普通HTML页面一样通过调用IE.Document.Body.InnerHTML来获得内容。

如何获取页面的内容并将其分配给变量以便进行处理?

哦,我刚刚把这个放在我的代码中:

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

这样,该文件在IE中被视为文本文件,它将在页面中打开。然后我可以使用普通的obgie.Document.Body.INerText来获取json内容。然后我把这个变量传递到我的函数上,这个函数对它进行解码。

希望这能帮助到别人,因为我在谷歌上找到的所有结果都对我没有帮助。我在这个旧帖子上发帖的唯一原因!

干杯,Ross

最新更新