久久久精品2019免费观看_亚洲国产精品成人久久久_69国产成人综合久久精品91_国产精品久久精品视

ASP采集-ASP采集程序原理

  核心提示:采集程序的主要步驟如下:一、獲取被采集的頁面的內(nèi)容二、從獲取代碼中提取所有用的數(shù)據(jù)一、獲取被采集的頁面的內(nèi)容我目前所掌握的ASP常用獲取被采集的頁面的內(nèi)容方法:1、用serverXMLHTTP組件獲取數(shù)據(jù)以下內(nèi)容為程序代碼:以下為引用的內(nèi)容:Function GetBody(weburl)'創(chuàng)建對象…

采集程序的主要步驟如下:

一、獲取被采集的頁面的內(nèi)容
二、從獲取代碼中提取所有用的數(shù)據(jù)
一、獲取被采集的頁面的內(nèi)容
我目前所掌握的ASP常用獲取被采集的頁面的內(nèi)容方法:
1、用serverXMLHTTP組件獲取數(shù)據(jù)

以下內(nèi)容為程序代碼:

以下為引用的內(nèi)容:
Function GetBody(weburl) 
    '創(chuàng)建對象
    Dim ObjXMLHTTP
    Set ObjXMLHTTP=Server.CreateObject("MSXML2.serverXMLHTTP")
    '請求文件,以異步形式
    ObjXMLHTTP.Open "GET",weburl,False
    ObjXMLHTTP.send
    While ObjXMLHTTP.readyState <> 4
        ObjXMLHTTP.waitForResponse 1000
    Wend
    '得到結(jié)果
     GetBody=ObjXMLHTTP.responseBody
    '釋放對象
     Set ObjXMLHTTP=Nothing
End Function

調(diào)用方法:
GetBody(文件的URLf地址)


2、或XMLHTTP組件獲取數(shù)據(jù)

以下內(nèi)容為程序代碼:

以下為引用的內(nèi)容:

Function GetBody(weburl)  
    '創(chuàng)建對象
    Set Retrieval = CreateObject("Microsoft.XMLHTTP")
    With Retrieval
     .Open "Get", weburl, False, "", ""
     .Send
     GetBody = .ResponseBody
     End With
    '釋放對象
    Set Retrieval = Nothing
End Function
 

調(diào)用方法:
GetBody(文件的URLf地址)


這樣獲取的數(shù)據(jù)內(nèi)容還需要進行編碼轉(zhuǎn)換才可以使用

以下內(nèi)容為程序代碼:

以下為引用的內(nèi)容:
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

調(diào)用方法:BytesToBstr(要轉(zhuǎn)換的數(shù)據(jù),編碼)'編碼常用為GB2312和UTF-8


二、從獲取代碼中提取所有用的數(shù)據(jù)
目前我掌握的方法有:
1、用ASP內(nèi)置的MID函數(shù)截取需要的數(shù)據(jù)

以下內(nèi)容為程序代碼:

Function body(wstr,start,over)
start=Newstring(wstr,start)
'設(shè)置需要處理的數(shù)據(jù)的唯一的開始標記
over=Newstring(wstr,over)
'和start相對應(yīng)的就是需要處理的數(shù)據(jù)的唯一的結(jié)束標記
body=mid(wstr,start,over-start)
'設(shè)置顯示頁面的范圍

End Function
調(diào)用方法:body(被采集的頁面的內(nèi)容,開始標記,結(jié)束標記)


2、用正則獲取需要的數(shù)據(jù)

以下內(nèi)容為程序代碼:

Function body(wstr,start,over)
Set xiaoqi = New Regexp'設(shè)置配置對象
xiaoqi.IgnoreCase = True'忽略大小寫
xiaoqi.Global = True'設(shè)置為全文搜索
xiaoqi.Pattern =  "”&start&“.+?”&over&“"'正則表達式
Set Matches =xiaoqi.Execute(wstr)'開始執(zhí)行配置
set  xiaoqi=nothing
body=""
For Each Match in Matches
body=body&Match.Value '循環(huán)匹配
Next
End Function
調(diào)用方法:body(被采集的頁面的內(nèi)容,開始標記,結(jié)束標記)


采集程序祥細思路:
1、取得網(wǎng)站的分頁列表頁的每頁地址
目前絕大部分動態(tài)網(wǎng)站的分頁地址都有規(guī)則,如:
動態(tài)頁
第一頁:index.asp?page=1
第二頁:index.asp?page=2
第三頁:index.asp?page=3
…..
靜態(tài)頁
第一頁:page_1.htm
第二頁:page_2.htm
第三頁:page_3.htm
…..
取得網(wǎng)站的分頁列表頁的每頁地址,只需要用變量替代每頁地址的變化的字符即可如:page_<%="&page&"%>.htm
2、獲取被采集網(wǎng)站的分頁列表頁內(nèi)容
3、從分頁列表代碼中提取被采集的內(nèi)容頁面的URL連接地址
絕大部分分頁頁面里的內(nèi)容頁連接也有固定規(guī)則,如:
連接1

連接2

連接3

用以下代碼就可以獲得一個URL連接集合

以下內(nèi)容為程序代碼:

以下為引用的內(nèi)容:
Set xiaoqi = New Regexp
xiaoqi.IgnoreCase = True
xiaoqi.Global = True
xiaoqi.Pattern =  ””“.+?”““
Set Matches =xiaoqi.Execute(頁面列表內(nèi)容)
set  xiaoqi=nothing
url=""
For Each Match in Matches
url=url&Match.Value
Next


4、取得被采集的內(nèi)容頁面內(nèi)容,根據(jù)”提取標記“從被采集的內(nèi)容頁面分別截取要取得的數(shù)據(jù)

因為是動態(tài)生成的頁面,大多數(shù)內(nèi)容頁面內(nèi)都有相同的html標記,我們可以根據(jù)這些有規(guī)則的標記提取需要的各個部分的內(nèi)容。
如:
每個頁面都有網(wǎng)頁標題,用我上面寫的MID截取函數(shù)就可以獲得之間的值,也可以用正則表達式來獲得。
例:body("","")

未經(jīng)允許不得轉(zhuǎn)載:445IT之家 » ASP采集-ASP采集程序原理

贊 (0) 打賞

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

微信掃一掃打賞