asp编程网
  • 设为首页

  • 加入收藏

  • 联系本站
  •   首页 | 软件下载 | 有问必答 | 贴吧 | 源码下载 | 网站介绍 | asp工具 | 关于我们 | 给我留言
    您的位置: ASP编程网 >> ASP实例 >> asp简单的采集代码教程

    asp简单的采集代码教程

    http://www.aspprogram.cn 5:31:50  asp编程网

    采集开始
    第一步是分析要采集的页面。
      使用浏览器打开要采集的页面(如: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

    % >

    这样就可以的,我现在将得到的内容输出来,你可以将这些内容写入数据库,这样数据就是你的了。
    源码见:http://www.aspprogram.cn/soft.asp?id=67

    更多关于 采集 的文章

    Copyright 2007-2010 www.aspprogram.cn All Rights Reserved 
    沪ICP备07505365号