asp抓取指定网页内容小偷采集程序改进版
我们经常需要从别处的网站进行抓取内容,这种程序叫做小偷采集程序,asp中的小偷程序能从其他网页抓取指定网页内容,这段代码是我经过改进以后的最终版。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | < % '用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="<div id=""table_body"">" '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的内容需要自己手动更改。
[…] 以前写了一个asp的小偷程序,这个只能抓取gbk的网页: asp抓取指定网页内容小偷采集程序改进版 […]