明凯博客

关注网站技术,一个特立独行的程序员

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的内容需要自己手动更改。

, , , , ,

相关文章

1 条评论 “asp抓取指定网页内容小偷采集程序改进版

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注