濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 網(wǎng)站生成靜態(tài)頁(yè)面攻略2:數(shù)據(jù)采集

網(wǎng)站生成靜態(tài)頁(yè)面攻略2:數(shù)據(jù)采集

熱門(mén)標(biāo)簽:鳳臺(tái)百度地圖標(biāo)注店 武夷山旅游地圖標(biāo)注 個(gè)人可以辦理400電話么 金昌電話機(jī)器人價(jià)格 萊西電子地圖標(biāo)注 怎么在地圖標(biāo)注自己 外呼系統(tǒng)API接口 縣域地圖標(biāo)注打印店 修改地圖標(biāo)注

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

Function GetBody(weburl) 
'-----------------翟振愷(小琦)
    '創(chuàng)建對(duì)象
    Dim ObjXMLHTTP
    Set ObjXMLHTTP=Server.CreateObject("MSXML2.serverXMLHTTP")
    '請(qǐng)求文件,以異步形式
    ObjXMLHTTP.Open "GET",weburl,False
    ObjXMLHTTP.send
    While ObjXMLHTTP.readyState > 4
        ObjXMLHTTP.waitForResponse 1000
    Wend
    '得到結(jié)果
     GetBody=ObjXMLHTTP.responseBody
    '釋放對(duì)象
     Set ObjXMLHTTP=Nothing
'-----------------翟振愷(小琦)
End Function
     調(diào)用方法:GetBody(文件的URLf地址)
    2、或XMLHTTP組件獲取數(shù)據(jù)

Function GetBody(weburl) 
'-----------------翟振愷(小琦)
    '創(chuàng)建對(duì)象
    Set Retrieval = CreateObject("Microsoft.XMLHTTP") 
    With Retrieval 
     .Open "Get", weburl, False, "", "" 
     .Send 
     GetBody = .ResponseBody
     End With 
    '釋放對(duì)象
    Set Retrieval = Nothing 
'-----------------翟振愷(小琦)
End Function
    調(diào)用方法:GetBody(文件的URLf地址)
    這樣獲取的數(shù)據(jù)內(nèi)容還需要進(jìn)行編碼轉(zhuǎn)換才可以使用

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ù)

Function body(wstr,start,over)
'-----------------翟振愷(小琦)
start=Newstring(wstr,start)
'設(shè)置需要處理的數(shù)據(jù)的唯一的開(kāi)始標(biāo)記
over=Newstring(wstr,over)
'和start相對(duì)應(yīng)的就是需要處理的數(shù)據(jù)的唯一的結(jié)束標(biāo)記
body=mid(wstr,start,over-start)
'設(shè)置顯示頁(yè)面的范圍
'-----------------翟振愷(小琦)
End Function
    調(diào)用方法:body(被采集的頁(yè)面的內(nèi)容,開(kāi)始標(biāo)記,結(jié)束標(biāo)記)
    2、用正則獲取需要的數(shù)據(jù)

Function body(wstr,start,over)
'-----------------翟振愷(小琦)
Set xiaoqi = New Regexp'設(shè)置配置對(duì)象
xiaoqi.IgnoreCase = True'忽略大小寫(xiě)
xiaoqi.Global = True'設(shè)置為全文搜索
xiaoqi.Pattern =  "”start“.+?”over“"'正則表達(dá)式 
Set Matches =xiaoqi.Execute(wstr)'開(kāi)始執(zhí)行配置
set  xiaoqi=nothing 
body=""
For Each Match in Matches
body=bodyMatch.Value '循環(huán)匹配
Next
'-----------------翟振愷(小琦)
End Function
    調(diào)用方法:body(被采集的頁(yè)面的內(nèi)容,開(kāi)始標(biāo)記,結(jié)束標(biāo)記)
    采集程序祥細(xì)思路:
    1、取得網(wǎng)站的分頁(yè)列表頁(yè)的每頁(yè)地址
        目前絕大部分動(dòng)態(tài)網(wǎng)站的分頁(yè)地址都有規(guī)則,如:
動(dòng)態(tài)頁(yè)
第一頁(yè):index.asp?page=1
第二頁(yè):index.asp?page=2
第三頁(yè):index.asp?page=3
.....

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

a href="url1">連接1/a> br>
a href="url2">連接2/a> br>
a href="url3">連接3/a> br>
    用以下代碼就可以獲得一個(gè)URL連接集合

'-----------------翟振愷(小琦)
Set xiaoqi = New Regexp
xiaoqi.IgnoreCase = True
xiaoqi.Global = True
xiaoqi.Pattern =  ””“.+?”““
Set Matches =xiaoqi.Execute(頁(yè)面列表內(nèi)容)
set  xiaoqi=nothing 
url=""
For Each Match in Matches
url=urlMatch.Value 
Next
'-----------------翟振愷(小琦)
    4、取得被采集的內(nèi)容頁(yè)面內(nèi)容,根據(jù)”提取標(biāo)記“從被采集的內(nèi)容頁(yè)面分別截取要取得的數(shù)據(jù)。
因?yàn)槭莿?dòng)態(tài)生成的頁(yè)面,大多數(shù)內(nèi)容頁(yè)面內(nèi)都有相同的html標(biāo)記,我們可以根據(jù)這些有規(guī)則的標(biāo)記提取需要的各個(gè)部分的內(nèi)容。如:
每個(gè)頁(yè)面都有網(wǎng)頁(yè)標(biāo)題title>網(wǎng)頁(yè)標(biāo)題/title>,用我上面寫(xiě)的MID截取函數(shù)就可以獲得title>/title>之間的值,也可以用正則表達(dá)式來(lái)獲得。
例:

body("title>網(wǎng)頁(yè)標(biāo)題/title>","title>","/title>")

標(biāo)簽:涼山 楚雄 邢臺(tái) 清遠(yuǎn) 通遼 南京 上海 赤峰

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《網(wǎng)站生成靜態(tài)頁(yè)面攻略2:數(shù)據(jù)采集》,本文關(guān)鍵詞  網(wǎng)站,生成,靜態(tài),頁(yè)面,攻略,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《網(wǎng)站生成靜態(tài)頁(yè)面攻略2:數(shù)據(jù)采集》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于網(wǎng)站生成靜態(tài)頁(yè)面攻略2:數(shù)據(jù)采集的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    南郑县| 都匀市| 孟州市| 泾川县| 台中市| 云南省| 万山特区| 周口市| 肥城市| 民勤县| 仁化县| 健康| 南和县| 大英县| 航空| 珲春市| 湖南省| 花莲县| 烟台市| 沅陵县| 华坪县| 宝鸡市| 通江县| 黄平县| 衡阳县| 旬阳县| 乐至县| 于都县| 化德县| 伊宁市| 百色市| 广德县| 辽阳市| 阳朔县| 章丘市| 积石山| 资兴市| SHOW| 德令哈市| 霍山县| 平阴县|