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