asp抓取指定网页内容小偷采集程序改进版
我们经常需要从别处的网站进行抓取内容,这种程序叫做小偷采集程序,asp中的小偷程序能从其他网页抓取指定网页内容,这段代码是我经过改进以后的最终版。
< %
'用ASP获取远程目标网页指定内容
On Error Resume Next
'设置超时时间
Server.ScriptTimeOut=9999
'获取网页内容
Function getHTTPPage(Path)
t = GetBody(Path)
getHTTPPage=BytesToBstr(t,"GB2312")
End function
'查找字符串位置
Function Newstring(start,wstr,strng)
Newstring=Instr(start,lcase(wstr),lcase(strng))
if Newstring<=0 then Newstring=Len(wstr)
End Function
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
Function GetBody(url)
on error resume next
Set Retrieval = CreateObject("Microsoft.XMLHTTP")
With Retrieval
.Open "Get", url, False, "", ""
.Send
GetBody = .ResponseBody
End With
Set Retrieval = Nothing
End Function
%>
< %
'ASP获取远程网页指定内容开始
Dim wstr,str,url,start,over,dtime
a="" 'ASP获取目标网页内容开始标记
b="" 'ASP获取网页内容结束标记
'获取当前网址
url="http://localhost/aaaa.asp"
html=html&Request.ServerVariables("URL")
if request.ServerVariables("QUERY_STRING")<>"" then
html = html &"?"& Request.ServerVariables("QUERY_STRING")
end if
re=instr(html,"?")
refer=mid(html,re)
urlurl=url&refer
'获取当前网址内容
wstr=getHTTPPage(url)
'获取所需要内容
start=Newstring(1,wstr,a)
over=Newstring(start,wstr,b)
body=mid(wstr,start,over-start) '表格
response.write ""&body&"" '输出获取到的网页内容
'ASP获取远程网页指定内容结束
%>
该段代码我已经投入使用效果还不错,但是需要截取的内容有规则。其中start和over的内容需要自己手动更改。
相关文章
1 条评论 “asp抓取指定网页内容小偷采集程序改进版”
发表回复
[…] 以前写了一个asp的小偷程序,这个只能抓取gbk的网页: asp抓取指定网页内容小偷采集程序改进版 […]