【问题标题】:saving file with download prompt with vbscript使用 vbscript 保存带有下载提示的文件
【发布时间】:2014-10-10 07:04:16
【问题描述】:

我正在使用 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

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

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

【问题讨论】:

标签: vbscript download


【解决方案1】:

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

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

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

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

干杯, 罗斯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    • 2014-05-08
    • 1970-01-01
    • 2012-12-11
    相关资源
    最近更新 更多