第二步,找到要采集的內容所在位置。 假如我要采集這個頁面上的標題和內容所在的位置: 標題在<h1 id="artibodyTitle" style="color:#03005C;">和</h1>之間 內容在<!-- 正文內容 begin -->和<!-- 正文內容 end -->之間 注意一下所在位置的唯一性,可以在找到后,使用編輯中的查找,看看是不是唯一的,盡可能是唯一的,如果不是,盡可能是第一個,如果再不行,只能更換
第三步,寫代碼
復制代碼 代碼如下:
< % '功能:asp采集代碼 '作者: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 % >