asp 采集实战代码
2018-09-06 11:41
最近实在是太流行采集了,本人是不喜欢采集的,但对采集的原理我却很有兴趣进行研究,拿到了网上采集常用函数,对其进行了一番研究,并实战,结果成功,撇开效率问题,采集原理并不复杂,大家可以在搜索吧输入“采集”查看其原理。下面是一个采集的例子:
复制代码 代码如下:
<%@LANGUAGE=VBSCRIPTCODEPAGE=65001%>
<%Response.Charset=UTF-8%>
<%Server.Scripttimeout=9999999
response.expires=0
response.expiresabsolute=Now()-1
response.addHeaderpragma,no-cache
response.addHeadercache-control,private
Response.CacheControl=no-cache
%>
<%
声明取得目标信息的函数,通过XML组件进行实现。
FunctionGetURL(url)
SetRetrieval=server.createobject(MSXML2.XMLHTTP)
WithRetrieval
.OpenGET,url,False
.Send
If.Status<>200then判断文档是否已经解析完,以做客户端接受返回消息
exitfunction
EndIf
二进制转字符串
GetURL=sTb(.responsebody)
endwith
对取得信息进行验证,如果信息长度小于100则说明截取失败
EndFunction
二进制转字符串,否则会出现乱码的!
FunctionsTb(vin)
ConstadTypeText=2
DimBytesStream,StringReturn
SetBytesStream=Server.CreateObject(ADODB.Stream)
WithBytesStream
.Type=adTypeText
.Open
.WriteTextvin
.Position=0
.Charset=GB2312
.Position=2
StringReturn=.ReadText
.Close
EndWith
SetBytesStream=Nothing
sTb=StringReturn
EndFunction
FunctionNewstring(Wstr,Strng)
Newstring=Instr(Lcase(Wstr),Lcase(Strng))
IfNewstring<=0ThenNewstring=Len(Wstr)
EndFunction
声明截取的格式,从Start开始截取,到Over为结束
FunctionGetKey(HTML,Start,Over)
Start=Newstring(HTML,start)
Over=Newstring(HTML,Over)
GetKey=Mid(HTML,Start,Over-start)
EndFunction
DimSoftid,Url,Html,Title
采集百度知道
Fori=1to100
Url=
Html=GetURL(Url)
Question=GetKey(Html,<cq>,</cq>)
Answer=GetKey(Html,<ca>,</ca>)
Response.Write(Question&<br/>)
Response.Write(Answer)
Response.Write(采集成功)
Next
打开数据库,准备入库
dimconnstr,conn,rs,sql
connstr=DBQ=+server.mappath(db1.mdb)+;DefaultDir=;DRIVER={MicrosoftAccessDriver(*.mdb)};
setconn=server.createobject(ADODB.CONNECTION)
conn.openconnstr
setrs=server.createobject(adodb.recordset)
sql=select[列名]from[表名]where[列名]=&Title&
rs.opensql,conn,3,3
ifrs.eofandrs.bofthen
rs(列名)=Title
rs.update
setrs=nothing
endif
setrs=nothing
%>