麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > ASP > 正文

asp采集HTML內(nèi)容常用代碼,詳講正則采集

2024-05-04 11:08:19
字體:
供稿:網(wǎng)友
我開發(fā)過幾個(gè)采集程序,也研究過很多采集程序代碼,所以對采集程序的原理還算是稍微有些了解。
 
 
 
先說一下采集原理: 

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

一、獲取被采集的頁面的內(nèi)容 
二、從獲取代碼中提取所有用的數(shù)據(jù) 

一、獲取被采集的頁面的內(nèi)容 

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

1、用serverXMLHTTP組件獲取數(shù)據(jù) 
復(fù)制代碼代碼如下:

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ù) 
復(fù)制代碼代碼如下:

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)容還需要進(jìn)行編碼轉(zhuǎn)換才可以使用 
復(fù)制代碼代碼如下:

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ù) 
復(fù)制代碼代碼如下:

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

調(diào)用方法:body(被采集的頁面的內(nèi)容,開始標(biāo)記,結(jié)束標(biāo)記) 
2、用正則獲取需要的數(shù)據(jù) 
復(fù)制代碼代碼如下:

Function body(wstr,start,over) 
Set xiaoqi = New Regexp'設(shè)置配置對象 
xiaoqi.IgnoreCase = True'忽略大小寫 
xiaoqi.Global = True'設(shè)置為全文搜索 
xiaoqi.Pattern = "”&start&“.+?”&over&“"'正則表達(dá)式 
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)容,開始標(biāo)記,結(jié)束標(biāo)記) 
采集程序祥細(xì)思路: 
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ī)則,如: 
<a href="url1">連接1</a> <br> 
<a href="url2">連接2</a> <br> 
<a href="url3">連接3</a> <br> 

用以下代碼就可以獲得一個(gè)URL連接集合 
復(fù)制代碼代碼如下:

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ù)”提取標(biāo)記“從被采集的內(nèi)容頁面分別截取要取得的數(shù)據(jù) 

因?yàn)槭莿討B(tài)生成的頁面,大多數(shù)內(nèi)容頁面內(nèi)都有相同的html標(biāo)記,我們可以根據(jù)這些有規(guī)則的標(biāo)記提取需要的各個(gè)部分的內(nèi)容。 
如: 
每個(gè)頁面都有網(wǎng)頁標(biāo)題<title>網(wǎng)頁標(biāo)題</title>,用我上面寫的MID截取函數(shù)就可以獲得<title></title>之間的值,也可以用正則表達(dá)式來獲得。 
例:body("<title>網(wǎng)頁標(biāo)題</title>","<title>","</title>")

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产成人高潮免费观看精品 | 久久精品一区二区三区四区五区 | 免费a级作爱片免费观看欧洲 | 欧美亚洲免费 | 97超碰资源站| 久久最新网址 | 激情小说激情图片激情电影 | 草操视频 | 国产1区2区3区在线观看 | 欧美日韩在线视频一区 | 在线视频观看成人 | 欧美一级做a | 亚洲小视频在线观看,com | 国产精品久久久久久久久粉嫩 | 91精品国产一区二区三区动漫 | 1314成人网| 成人午夜精品久久久久久久3d | 国产在线一区二区三区 | 91www成人久久 | 四季久久免费一区二区三区四区 | 亚洲欧洲日韩av | 欧美日性 | 欧美一级淫片a免费播放口 91九色蝌蚪国产 | 亚洲一区二区观看播放 | 欧美一级做一级爱a做片性 久久久资源网 | 亚洲人成网站免费播放 | 一级性生活免费视频 | 在线看免费观看日本 | www.精品视频 | 国产精品一区2区3区 | 黄色片在线观看网站 | 午夜视频在线免费观看 | 中文字幕欧美一区二区三区 | 国产精品亚洲综合一区二区三区 | 国产精品久久久久一区二区 | 久久久久免费精品国产小说色大师 | 欧美黄色试片 | 成人三级电影在线 | 高清国产午夜精品久久久久久 | 97视频| 高潮激情aaaaa免费看 |