採集程式原理,資訊採集技術的原理

2021-04-21 18:25:59 字數 3495 閱讀 7933

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

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

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

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

我目前所掌握的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(被採集的頁面的內容,開始標記,結束標記)

採集程式祥細思路:

1、取得**的分頁列表頁的每頁位址

目前絕大部分動態**的分頁位址都有規則,如:

動態頁

第一頁: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("","")

採集原理 採集技術篇

最近一段時間,採集很熱門,從新聞小偷,到 小偷,到新聞採集,flash採集,都有他的蹤影,現在還有很多的人對採集都很感興趣,為了服務大家,我也正在寫一套採集程式,名字為 心意採集程式 現在我講一下,採集用到的相關技術。下面講到的也不是很高深的xmlhttp技術,我也是稍稍講一下,乙個採集需要用到的幾...

轉 ASP採集 ASP採集程式原理

轉自 採集程式的主要步驟如下 一 獲取被採集的頁面的內容 二 從獲取 中提取所有用的資料 一 獲取被採集的頁面的內容 我目前所掌握的asp常用獲取被採集的頁面的內容方法 1 用serverxmlhttp元件獲取資料 以下內容為程式 以下為引用的內容 function getbody weburl 建...

PHP採集程式原理分析篇

由於需要,要寫乙個簡單的php採集程式,照例是到網上找了一堆教程,然後照貓畫虎,可是發現網上的教程全是似是而非,沒有乙個真正能用的。苦想了幾天,終於弄明白了裡面的道理。在這裡寫出來,請高手指正。採集程式的思路很簡單,無非就是先打乙個頁面,一般都是列表頁,取得裡面全部鏈結的位址,然後開啟逐條鏈結,尋找...