轉 ASP採集 ASP採集程式原理

2021-09-05 21:16:25 字數 3402 閱讀 8064

轉自:

採集程式的主要步驟如下:

一、獲取被採集的頁面的內容

二、從獲取**中提取所有用的資料

一、獲取被採集的頁面的內容

我目前所掌握的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...