国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

淺談ASP采集程序的原理_ASP教程

2024-05-04 11:04:05
字體:
來源:轉載
供稿:網友

推薦:ASP與ACCESS鏈接
本文例舉了ASP實例關于ASP與ACCESS鏈接的兩種方式。 以下為引用的內容: %dim dd,connstrdd=data.mdbconnstr=&q

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

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

二、從獲取代碼中提取所有用的數據

 

 

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

我目前所掌握的ASP常用獲取被采集的頁面的內容方法:

1、用serverXMLHTTP組件獲取數據

以下內容為程序代碼:

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

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


2、或XMLHTTP組件獲取數據

以下內容為程序代碼:

以下為引用的內容:

Function GetBody(weburl)
'創建對象
Set Retrieval = CreateObject("Microsoft.XMLHTTP")
With Retrieval
.Open "Get", weburl, False, "", ""
.Send
GetBody = .ResponseBody
End With
'釋放對象
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("","")

分享:如何使用ASP訂制自己的XML文件讀寫方法
在此之前,我寫了兩篇關于ASP結合XML的貼子,分別介紹了用XML取代數據庫和用XML整合數據庫這兩方面的技術,讓數據庫在某種情況下不再是我們的唯一選擇。而XML跟傳統數據庫相比,更有以下優

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仪陇县| 扶沟县| 城固县| 金堂县| 柯坪县| 文化| 江川县| 新和县| 苍溪县| 珲春市| 汾阳市| 雅江县| 睢宁县| 全南县| 青阳县| 芜湖市| 卓资县| 固阳县| 永顺县| 陵川县| 南澳县| 年辖:市辖区| 辰溪县| 留坝县| 鄂伦春自治旗| 梅河口市| 仁化县| 安福县| 横峰县| 济阳县| 依安县| 深水埗区| 梁河县| 日照市| 信丰县| 大宁县| 兖州市| 西充县| 阳西县| 武隆县| 民权县|