用xmlhttp編寫web采集程序
2024-05-04 10:58:40
供稿:網(wǎng)友
晰帶語法著色的版本:http://gwx.showus.net/blog/article.asp?id=229
原創(chuàng)很辛苦,轉(zhuǎn)載請注明原文鏈接:http://gwx.showus.net/blog/article.asp?id=229
web采集程序?網(wǎng)頁抓取程序?小倫程序?不管怎么叫,這種程序應(yīng)用倒是蠻廣的。本文不討論這種使用這種程序引起的版權(quán)或道德問題,只談這種程序在ASP+VBScript環(huán)境下的實(shí)現(xiàn) :-)
預(yù)備知識(shí):除了一般的ASP+VBScript的知識(shí)外,你還需要了解xmlhttp對象和正則表達(dá)式對象。xmlhttp對象是時(shí)下風(fēng)頭正勁的Ajax的主角;而學(xué)好了正則表達(dá)式,你再也不用為處理復(fù)雜的字符串犯愁。
在編寫和調(diào)試正則表達(dá)式時(shí),RegEx 這個(gè)小工具非常有用。
目錄
抓取一個(gè)遠(yuǎn)程網(wǎng)頁并保存到本地
改進(jìn):處理亂碼
同時(shí)下載遠(yuǎn)程網(wǎng)頁的圖片(和其它文件)
改進(jìn):探測真實(shí)URL
改進(jìn):避免重復(fù)下載
實(shí)戰(zhàn)舉例(以****為例)
分析列表頁
內(nèi)容頁的技巧
分析內(nèi)容頁中的上一頁,下一頁
高級(jí)主題:UTF-8和GB2312的轉(zhuǎn)換
更多高級(jí)主題:登陸后抓取,客戶端偽造
己有的采集程序
原文鏈接:http://gwx.showus.net/blog/article.asp?id=229
1.抓取一個(gè)遠(yuǎn)程網(wǎng)頁并保存到本地
'用于調(diào)試的過程,后面會(huì)多次調(diào)用檢查中間結(jié)果
Dim inDebug:inDebug=True
Sub D(Str)
If inDebug = False Then Exit Sub
Response.Write("<div style='color:#003399; border: solid 1px #003399; background: #EEF7FF; margin: 1px; font-size: 12px; padding: 4px;'>")
Response.Write(Str &"</div>")
Response.Flush()
End Sub
'過程: Save2File
'功能: 把文本或字節(jié)流保存為文件
'參數(shù): sContent 要保存的內(nèi)容
' sFile 保存到文件,形如"files/abc.htm"
' bText 是否是文本
' bOverWrite 是否覆蓋己存在文件
Sub Save2File(sContent,sFile,bText,bOverWrite)
Call D("Save2File:"+sFile+" *是否文本:"&bText)
Dim SaveOption,TypeOption
If (bOverWrite = True) Then SaveOption=2 Else SaveOption=1
If (bText = True) Then TypeOption=2 Else TypeOption=1
Set Ads = Server.CreateObject("Adodb.Stream")
With Ads
.Type = TypeOption