轉自:
採集程式的主要步驟如下:
一、獲取被採集的頁面的內容
二、從獲取**中提取所有用的資料
一、獲取被採集的頁面的內容
我目前所掌握的asp常用獲取被採集的頁面的內容方法:
1、用serverxmlhttp元件獲取資料
以下內容為程式**:
以下為引用的內容:
function getbody(weburl)
'建立物件
'請求檔案,以非同步形式
'得到結果
'釋放物件
呼叫方法:
getbody(檔案的urlf位址)
2、或xmlhttp元件獲取資料
以下內容為程式**:
以下為引用的內容:
function getbody(weburl)
'建立物件
'釋放物件
set retrieval = nothing
end function
呼叫方法:
getbody(檔案的urlf位址)
這樣獲取的資料內容還需要進行編碼轉換才可以使用
以下內容為程式**:
以下為引用的內容:
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
呼叫方法:bytestobstr(要轉換的資料,編碼)'編碼常用為gb2312和utf-8
二、從獲取**中提取所有用的資料
目前我掌握的方法有:
1、用asp內建的mid函式擷取需要的資料
以下內容為程式**:
function body(wstr,start,over)
start=newstring(wstr,start)
'設定需要處理的資料的唯一的開始標記
over=newstring(wstr,over)
'和start相對應的就是需要處理的資料的唯一的結束標記
body=mid(wstr,start,over-start)
'設定顯示頁面的範圍
end function
呼叫方法:body(被採集的頁面的內容,開始標記,結束標記)
2、用正則獲取需要的資料
以下內容為程式**:
function body(wstr,start,over)
set xiaoqi = new regexp'設定配置物件
xiaoqi.ignorecase = true'忽略大小寫
xiaoqi.global = true'設定為全文搜尋
xiaoqi.pattern = "」&start&「.+?」&over&「"'正規表示式
set matches =xiaoqi.execute(wstr)'開始執行配置
set xiaoqi=nothing
body=""
for each match in matches
body=body&match.value '迴圈匹配
next
end function
呼叫方法:body(被採集的頁面的內容,開始標記,結束標記)
採集程式祥細思路:
動態頁第一頁:index.asp?page=1
第二頁:index.asp?page=2
第三頁:index.asp?page=3
.....
靜態頁第一頁:page_1.htm
第二頁:page_2.htm
第三頁:page_3.htm
.....
取得**的分頁列表頁的每頁位址,只需要用變數替代每頁位址的變化的字元即可如:page_<%="&page&"%>.htm
2、獲取被採集**的分頁列表頁內容
3、從分頁列表**中提取被採集的內容頁面的url連線位址
絕大部分分頁頁面裡的內容頁連線也有固定規則,如:
連線1
連線2
連線3
用以下**就可以獲得乙個url連線集合
以下內容為程式**:
以下為引用的內容:
set xiaoqi = new regexp
xiaoqi.ignorecase = true
xiaoqi.global = true
xiaoqi.pattern = 」」「.+?」「「
set matches =xiaoqi.execute(頁面列表內容)
set xiaoqi=nothing
url=""
for each match in matches
url=url&match.value
next
4、取得被採集的內容頁面內容,根據」提取標記「從被採集的內容頁面分別擷取要取得的資料
因為是動態生成的頁面,大多數內容頁面內都有相同的html標記,我們可以根據這些有規則的標記提取需要的各個部分的內容。
如:每個頁面都有網頁標題,用我上面寫的mid擷取函式就可以獲得之間的值,也可以用正規表示式來獲得。
例:body("","")
ASP採集教程一基礎篇
asp採集其它就是利用微軟自帶的xmlhttp元件取得遠端頁面的源 再經過程式的過濾替換處理轉換成我們想要的資料。我們也不管用什麼,反正我教你的就是用一段 取得目標 再把目標 加工一下。然後直接顯示啊還是寫入資料庫。就這麼簡單 引用元件createobject microsoft.xmlhttp 取...
採集程式原理,資訊採集技術的原理
採集程式的主要步驟如下 一 獲取被採集的頁面的內容 二 從獲取 中提取所有用的資料 一 獲取被採集的頁面的內容 我目前所掌握的asp常用獲取被採集的頁面的內容方法 1 用serverxmlhttp元件獲取資料 以下內容為程式 function getbody weburl 建立物件 請求檔案,以非同...
提供幾個關於採集的函式 ASP
斷劍注釋 strtext為要切取內容的那段打的內容 strstartag為要切取內容的開始的地方 strendtag為要切取內容的結束的地gprfwp方 gettext返回值為切取出來的內容 注釋結束 function gettext strtext,strstarttag,strendtag di...