的目标: 登录网页 并将html保存到文件中以便稍后解析。
页面上的html只是一个用户列表以及他们登录和注销的时间。
当您加载网页时,会弹出一个javascript框并要求提供登录信息
我可以用SendKeys填充这个,但我真的想在没有弹出窗口的情况下这样做
Set IE = CreateObject("InternetExplorer.Application")
set WshShell = CreateObject("WScript.Shell")
IE.Visible = False ' doesn't set IE page as invisible?????
IE.Navigate "https://mysite/site/console/client-log.jsp"
'how do i fill in the box ???
答案 0 :(得分:3)
我建议使用类似Fiddler的内容来识别执行实际登录的请求,然后在XMLHttpRequest中使用该信息。
url = "..."
filename = "..."
Set req = CreateObject("MSXML2.XMLHTTP.6.0")
req.open "POST", url, False
req.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
req.send "field1=foo&field2=bar&..."
Set fso = CreateObject("Scripting.FileSystemObject")
fso.OpenTextFile(filename, 2, True).WriteLine req.responseText
如果响应是UTF-8编码,您可能需要使用ADODB.Stream对象来保存内容。
Set stream = CreateObject("ADODB.Stream")
stream.Open
stream.Type = 2 'text
stream.Position = 0
stream.Charset = "utf-8"
stream.WriteText req.responseText
stream.SaveToFile filename, 2
stream.Close