### ASP通用采集函数冗余版知识点解析 #### 一、概述 本文档介绍了一个ASP(Active Server Pages)脚本中的通用采集函数冗余版本。该脚本主要用于从远程服务器获取网页内容或文件,并将这些数据保存到本地。脚本由柳永法编写,发布日期为2007年6月23日。主要功能包括获取HTTP页面内容、获取HTTP图片以及将这些内容保存到本地。 #### 二、关键函数解析 ##### 1. `getHTTPPage(Path)` 该函数用于获取指定URL路径下的网页内容,并将其转换为GB2312编码格式。 ```vb Function getHTTPPage(Path) t = GetBody(Path) getHTTPPage = BytesToBstr(t, "GB2312") End Function ``` - **参数**:`Path`表示需要获取内容的URL路径。 - **返回值**:返回经过GB2312编码转换后的网页内容。 ##### 2. `GetBody(url)` 此函数负责通过HTTP GET请求获取指定URL的响应体。 ```vb Function GetBody(url) On Error Resume Next Set xmlhttp = CreateObject("Microsoft.XMLHTTP") With xmlhttp .Open "GET", url, False, "", "" .Send waitForResponse 1000 GetBody = .ResponseBody End With Set xmlhttp = Nothing End Function ``` - **参数**:`url`为需要获取内容的URL地址。 - **返回值**:返回HTTP响应体的内容。 - **异常处理**:使用`On Error Resume Next`来忽略可能发生的错误。 ##### 3. `BytesToBstr(Body, Cset)` 该函数的作用是将二进制数据转换为指定字符集的字符串。 ```vb Function BytesToBstr(Body, Cset) On Error Resume Next Dim objstream Set objstream = Server.CreateObject("ADODB.Stream") objstream.Type = 1 objstream.Mode = 3 objstream.Open objstream.Write Body objstream.Position = 0 objstream.Type = 2 objstream.Charset = Cset BytesToBstr = objstream.ReadText objstream.Close Set objstream = Nothing End Function ``` - **参数**: - `Body`为需要转换的二进制数据。 - `Cset`为目标字符集,例如“GB2312”。 - **返回值**:返回转换后的字符串。 ##### 4. `getHTTPimg(url)` 此函数用于获取指定URL的图片资源。 ```vb Function getHTTPimg(url) On Error Resume Next Dim xmlhttp Set xmlhttp = server.CreateObject("MSXML2.XMLHTTP") xmlhttp.Open "GET", url, false xmlhttp.send() If xmlhttp.Status <> 200 Then Exit Function getHTTPimg = xmlhttp.responseBody Set xmlhttp = Nothing If Err.Number <> 0 Then Err.Clear End Function ``` - **参数**:`url`为图片资源的URL地址。 - **返回值**:返回图片的二进制数据。 - **异常处理**:与`GetBody`类似,使用`On Error Resume Next`来处理可能发生的错误。 ##### 5. `Save2Local(from, tofile)` 此函数用于将从远程服务器获取的内容保存到本地文件系统。 ```vb Function Save2Local(from, tofile) Dim geturl, objStream, imgs geturl = Trim(from) imgs = gethttpimg(geturl) Set objStream = Server.CreateObject("ADODB.Stream") objStream.Type = 1 objStream.Open objstream.Write imgs objstream.SaveToFile tofile, 2 objstream.Close() Set objstream = Nothing End Function ``` - **参数**: - `from`为远程资源的URL。 - `tofile`为保存到本地的文件路径。 - **功能**:将远程资源保存到本地文件。 #### 三、示例调用 在文档中还提供了几个示例调用来演示如何使用这些函数。 ```vb <% NowDir = server.mappath("/") Call Save2Local("http://www.baidu.com/img/logo.gif", NowDir & "baidulogo.gif") Call Save2Local("http://flash.jninfo.net/images/banner.swf", NowDir & "banner.swf") Call Save2Local("//www.jb51.net.com/", NowDir & "jb51.htmll") Response.Write getHTTPPage("//www.jb51.net/") %> ``` - **示例1**:保存百度Logo图片到本地。 - **示例2**:保存一个SWF文件到本地。 - **示例3**:尝试保存一个HTML页面到本地(注意这里URL写法存在问题)。 - **示例4**:显示获取到的网页内容。 #### 四、总结 这个ASP通用采集函数冗余版包含了几个重要的功能模块,如获取HTTP页面内容、获取HTTP图片以及保存这些内容到本地。这些功能在网站开发、数据抓取等场景中有广泛的应用价值。通过对上述代码的分析,我们可以了解到ASP环境下进行网络数据抓取的基本方法和技术实现细节。同时,该脚本也存在一定的局限性和潜在的问题,例如对异常处理不够完善、URL写法错误等,在实际应用中需要注意调整和完善。
- 粉丝: 4
- 资源: 902
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助