当前位置:asp编程网>技术教程>Asp教程>  正文

asp简单的采集代码教程

2008-09-16 09:23:55   来源:asp编程网    作者:wangsdong   浏览量:8756   收藏

采集开始
第一步是分析要采集的页面。
  使用浏览器打开要采集的页面(如:http://sports.sina.com.cn/k/2008-09-15/04593948756.shtml,你可以其他页面),打开后,点击右键,查源文件。

第二步,找到要采集的内容所在位置。
假如我要采集这个页面上的标题和内容所在的位置:
标题在<h1 id="artibodyTitle" style="color:#03005C;">和</h1>之间
内容在<!-- 正文内容 begin -->和<!-- 正文内容 end -->之间
注意一下所在位置的唯一性,可以在找到后,使用编辑中的查找,看看是不是唯一的,尽可能是唯一的,如果不是,尽可能是第一个,如果再不行,只能更换

第三步,写代码
< %
 '功能:asp采集代码
  '来自:www.aspprogram.cn
  '作者:wangsdong
  '备注:支持原创程序,请保留此信息,谢谢

url="http://sports.sina.com.cn/k/2008-09-15/04593948756.shtml"
  str=getHTTPPage(url)
  title=strcut(str,"<h1 id=""artibodyTitle"" style=""color:#03005C;"">","</h1>",2)
  content=strcut(str,"<!-- 正文内容 begin -->","<!-- 正文内容 end -->",2) 
  response.write "新闻标题<br><b>"&title&"</b><br><br><br>新闻内容:<br>"&content 

Function getHTTPPage(url)
 On Error Resume Next
 dim http
 set http=Server.createobject("Microsoft.XMLHTTP")
 Http.open "GET",url,false
 Http.send()
 if Http.readystate<>4 then
  exit function
 end if
 getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
 set http=nothing
 If Err.number<>0 then
  Response.Write "<p align='center'><font color='red'><b>服务器获取文件内容出错</b></font></p>"
  Err.Clear
 End If 
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

'截取字符串,1.包括起始和终止字符,2.不包括
Function strCut(strContent,StartStr,EndStr,CutType)
 Dim strHtml,S1,S2
 strHtml = strContent
 On Error Resume Next
 Select Case CutType
 Case 1
  S1 = InStr(strHtml,StartStr)
  S2 = InStr(S1,strHtml,EndStr)+Len(EndStr)
 Case 2
  S1 = InStr(strHtml,StartStr)+Len(StartStr)
  S2 = InStr(S1,strHtml,EndStr)
 End Select
 If Err Then
  strCute = "<p align='center'>没有找到需要的内容。</p>"
  Err.Clear
  Exit Function
 Else
  strCut = Mid(strHtml,S1,S2-S1)
 End If
End Function

% >

这样就可以的,我现在将得到的内容输出来,你可以将这些内容写入数据库,这样数据就是你的了。

 


关于我们-广告合作-联系我们-积分规则-网站地图

Copyright(C)2013-2017版权所属asp编程网