六、对抓取的网页进行截取
首先写个截取子程序cutBy(head,headCusor,bot,botCusor),它可以按照你指定的首尾字符串、及位置偏移指针,对抓取的网页进行裁减。程序中参数head,headCusor,bot,botCusor分别是首字符串,首偏移值,尾字符串,尾偏移值;偏移值单位为字符数,向前偏移为负值,向后偏移为正值。
public sub cutBy(head,headCusor,bot,botCusor)
if isGet_= false then call steal()
On Error Resume Next
url=src_
value_=mid(value_ ,instr(value_ ,head)+len(head)+headCusor,instr(value_ ,bot)-1+botCusor-instr(value_ ,head)-len(head)-headcusor)
If Err.Number<>0 Then Response.Write “裁减“&url&” 失败。”
end sub
把以上cutBy子程序添加到clsThief类中,然后在2hand-cj.asp中增加如下调用:
<%
s1="
“)
fangshi=TRIM(right(fangshi,4))
select case fangshi
case “求购”
SoftType=”买进”
case “出售”
SoftType=”卖出”
end select
if instr(fangshi,”””>”)>0 then fangshi=”其他” '如果fangshi含有字符”> 则fangshi=”其他”
'—–取得价格
jiage=GetKey(HTML,”
“)
DayDate=right(DayDate,10)
'—–显示得到的帖子数据
Response.write tittle
Response.write url
Response.write fangshi
Response.write jiage
Response.write DayDate
九、帖子数据入库
最后要把帖子数据tittle、url、fangshi、jiage、DayDate写入#2hand.mdb库中,为防止帖子重复入库,需要写个 testsj函数来判断某帖子是否已入库了,假如某帖子URL在库中找不到,则将该帖入库,否则就不予入库,代码如下:
'检测库中是否有某帖子的URL
Function testsj(titURL) SQL=”select * from SoftDown_SoftInfo where url like '%”&titURL&”%' ”
set rs=server.createobject(“adodb.recordset”)
rs.open SQL,conn,1,1
if rs.bof and rs.eof then
testsj=True
ErrMsg=ErrMsg & “
你要找的帖子不存在,或者已经被管理员删除!
”
else
testsj=false '库中无该帖子的URL
end if
rs.close
set rs=nothing
End Function
接下来打开数据库语句如下:
db=”#2hand.mdb”
Set conn = Server.CreateObject(“ADODB.Connection”)
connstr=”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & Server.MapPath(db)
conn.Open connstr
'—–判断帖子是否已经入库?
FoundErr=False
FoundErr=testsj(url)
'—–帖子数据写入库中
if FoundErr=True then
set rs=server.createobject(“adodb.recordset”)
sql=”select * from SoftDown_SoftInfo where (SoftID is null)”
rs.open sql,conn,1,3
if rs.bof and rs.eof then
ErrMsg=ErrMsg & “
你要找的帖子不存在,或者已经被管理员删除!
”
else
ArticleTitle=rs(“SoftName”)
end if
rs.addnew
rs(“SoftName”)=tittle
rs(“url”)=url
rs(“CateID”)=CateID '所属大类
rs(“SubCateID”)=SubCateID '所属小类
rs(“SoftType”)=fangshi '出售\买进\出租\求租等方式
rs(“SoftSize”)=jiage '价格
rs(“hfsj”)=DayDate '发布时间
rs.update
rs.close
set rs=nothing
Response.write ” 该帖入库成功