2

目标:登录网页并将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 ???
4

1 回答 1

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
于 2013-02-17T12:09:00.187 回答