2014-10-10 76 views
0

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

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

IE浏览器登录到网站后,我直接把它保存为页面我想保存为一个文件,问题是这个页面正在返回JSON数据(filename.json) - 所以IE会提示打开/保存/ 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 

编辑:好吧,我能得到IE浏览器中显示的内容,而不是通过编辑注册表来治疗以.json文件为文本文件,现在的问题是页面下载它是一个JSON文件,而不是一个HTML文件,所以我不能像调用普通的HTML页面一样调用IE.Document.Body.InnerHTML来获取它的内容。

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

+0

你可以试试[禁用IE中的该功能(http://9to5it.com/internet-explorer-disable-do-you-want-to-open-or-save-此文件提示符/)。 – 2014-10-10 07:27:37

+0

谢谢!有趣的是,我之前阅读过这个页面,并没有帮助,然后我再次阅读并找到解决方案。但是,现在我坚持另一个问题... – 2014-10-10 12:14:11

+1

如果您找到了解决方案,请张贴它作为答案,并接受它。否则,你将你的问题添加到僵尸问题池中,永远不会得到正式的,被接受的答案。 – TheBlastOne 2014-10-13 07:31:52

回答

0

哦,我只是把这个在我的代码:

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

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

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

干杯, 罗斯