2013-02-16 90 views
2

目标: 登录到网页 并将html保存到文件以供稍后解析。使用vbscript读取/保存网页

页面上的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 ??? 
+2

我看到区别的名称和实际问题之间,但是,如果你还没有到该网页的源的访问和修改它的设计,你又如何指望跳过弹出对话框? – 2013-02-16 20:31:27

回答

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