
欢迎来到本 TechNet 专栏,在这里,Microsoft 脚本专家将为您解答与系统管理脚本编写有关的各种常见问题。遇到了系统脚本编写方面的问题?请将电子邮件发送到 scripter@microsoft.com。我们不能保证回答收到的所有问题,但是我们将尽最大的努力。
今日问题:如何识别网页是否可访问?
您好,脚本专家!如何识别网页是否可访问?
-- JW
您好,JW。老实说,有一些问题我们十分讨厌,对于这些问题,我们不费一番脑筋就无法知道答案,但又好像有解决的办法。在脚本编写世界中,有时复杂的事情会变得简单,简单的事情却会变得复杂。
幸运的是,这个问题很简单。我们知道一种检索网页内容的方法,但我们不知道是否有一种简单的方法可以确定这些内容是否可检索(即,网页是否可访问)。现在看您的啦。下面这个脚本将告诉您“脚本中心”主页是否已启动并且在运行:
On Error Resume Next
strURL = "http://www.microsoft.com/technet/scriptcenter/default.mspx"
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
objHTTP.Open "GET", strURL, FALSE
objHTTP.Send
Wscript.Echo(objHTTP.statusText)
我们首先将“脚本中心”的 URL 赋给名为 strURL 的变量。接着我们创建了一个实例 MSXML2.XMLHTTP,该实例是一个 COM 对象,它为客户机与 HTTP 服务器的交互提供了一种方法。然后我们调用 Open 方法,向其传递三个参数:GET(指从服务器检索信息)、strURL(保存“脚本中心”主页 URL 的变量)和 FALSE(使调用同步)。之后,我们使用 Send 方法将我们的请求发送到 HTTP 服务器。
那么我们如何知道 http://www.microsoft.com/technet/scriptcenter/default.mspx 是否可访问呢?只需检查 statusText 属性的值即可。如果 statusText 是 OK,则页面可访问;如果不是 OK,则说明某些地方出错了,我们无法访问指定的 URL。
顺便提一句,网页的内容是作为 MSXML2.XMLHTTP 对象的 ResponseText 属性返回的。这意味着您可以使用 FileSystem 对象将页面的内容保存到文件中。例如:
On Error Resume Next
Const ForWriting = 2
strURL="http://www.microsoft.com/technet/scriptcenter/default.mspx"
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
objHTTP.Open "GET", strURL, FALSE
objHTTP.Send
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile("script_center.htm", ForWriting)
objFile.Write objHTTP.ResponseText
objFile.Close
请记住,保存后的文档的格式可能与网页的格式不同,这取决于以下情况:网页使用的是什么样式表,页面使用的是图形的相对链接还是绝对链接等。不过大多数情况下,即使格式有点缺漏,页面也可读。
欢迎访问您好,脚本专家!- 存档