前方我发表了HTML源数据采集的函数 GetHtml 如果你没看到可以去先看看
http://www.elvhome.com/html/2012981157352784.html
下面我们将介绍将源数据处理的函数:
GetHtml函数的返回值只有是HTML文章或者是图片的二进制数据流,所以按你所需调用此函数后,然后使用不同的方法将其处理.
1.转换为可是别的字符
'将二进制源文件转换为可识别的字符
Function BytesToBstr(body,Cset)
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=我们使用Gethtml函数获取的二进制数据流.
Cset=我们要求的编码方式,可以是 GB2312,UTF-8
注意:要求服务器必须支持Stream对象,在国内的大多数服务器都有此组件.
2.保存为图片
'将源文件(二进制流文件)保存为图片
Function ImgDataToFile(imgpath,imgdata)
Dim objStream,pathI
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type =1
'objStream.Open
IF CheckArray(imgpath,imgdata) Then
For pathI = 0 To Ubound(imgpath)
IF imgdata(pathI)<>0 Then
objStream.Open
objstream.Write imgdata(pathI)
objstream.SaveToFile Server.Mappath(imgpath(pathI)),2
objstream.Close()
Echo "第"&(pathI+1)&"张图片保存成功!
"
Else
Echo "第"&(pathI+1)&"张图片不存在!
"
End IF
Next
Else
objStream.Open
objstream.Write imgdata
objstream.SaveToFile Server.Mappath(imgpath),2
objstream.Close()
Echo "图片保存成功!"
End IF
'objstream.Close()
Set objstream = Nothing
End Function
参数说明: imgpath,imgdata
需要保存图片的路径 图片的二进制数据
此参数可以是数组,且同时是数组并对应.
函数中使用了一个检测数组的函数,附上
Function CheckArray(arr1,arr2)
CheckArray = True
IF IsArray(arr1) And IsArray(arr2) Then
IF Ubound(arr1)<>Ubound(arr2) Then
CheckArray = False
End IF
Else
CheckArray = False
End IF
End Function