asp文章采集原理与示例
成功志
asp文章采集原理与示例
2012-8-15 ok12
第一步是分析要采集的页面。

  使用浏览器打开要采集的页面(如:http://www.ok12.net/php/202.html,你可以其他页面),打开后,点击右键,查源文件。

第二步,找到要采集的内容所在位置。

假如我要采集这个页面上的标题和内容所在的位置:

标题在<h1 id="artibodyTitle" style="color:#03005C;">和</h1>之间

内容在<!-- 正文内容 begin -->和<!-- 正文内容 end -->之间

注意一下所在位置的唯一性,可以在找到后,使用编辑中的查找,看看是不是唯一的,尽可能是唯一的,如果不是,尽可能是第一个,如果再不行,只能更换



第三步,写代码

< %

 '功能:asp采集代码

  '来自:www.aspprogram.cn

  '作者:wangsdong

  '备注:支持原创程序,请保留此信息,谢谢


url="http://www.ok12.net/php/202.html"

  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


% >



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


发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容