使用vbscript读取/保存网页

时间:2013-02-16 19:14:48

标签: vbscript

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

1 个答案:

答案 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