采集開始
第一步是分析要采集的頁面。
使用瀏覽器打開要采集的頁面(如:http://sports.sina.com.cn/k/2008-09-15/04593948756.shtml,你可以其他頁面),打開后,點(diǎn)擊右鍵,查源文件。
第二步,找到要采集的內(nèi)容所在位置。
假如我要采集這個(gè)頁面上的標(biāo)題和內(nèi)容所在的位置:
標(biāo)題在h1 id="artibodyTitle" style="color:#03005C;">和/h1>之間
內(nèi)容在<!-- 正文內(nèi)容 begin -->和<!-- 正文內(nèi)容 end -->之間
注意一下所在位置的唯一性,可以在找到后,使用編輯中的查找,看看是不是唯一的,盡可能是唯一的,如果不是,盡可能是第一個(gè),如果再不行,只能更換
第三步,寫代碼
復(fù)制代碼 代碼如下:
%
'功能:asp采集代碼
'作者:wangsdong
'備注:支持原創(chuàng)程序,請保留此信息,謝謝
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,"!-- 正文內(nèi)容 begin -->","!-- 正文內(nèi)容 end -->",2)
response.write "新聞標(biāo)題br>b>"title"/b>br>br>br>新聞內(nèi)容: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>服務(wù)器獲取文件內(nèi)容出錯(cuò)/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'>沒有找到需要的內(nèi)容。/p>"
Err.Clear
Exit Function
Else
strCut = Mid(strHtml,S1,S2-S1)
End If
End Function
% >
這樣就可以的,我現(xiàn)在將得到的內(nèi)容輸出來,你可以將這些內(nèi)容寫入數(shù)據(jù)庫,這樣數(shù)據(jù)就是你的了。