用asp+xmlhttp編寫web采集程序
2024-05-04 11:01:37
供稿:網友
web采集程序?網頁抓取程序?小倫程序?不管怎么叫,這種程序應用倒是蠻廣的。本文不討論這種使用這種程序引起的版權或道德問題,只談這種程序在ASP+VBScript環境下的實現 :-)
預備知識:除了一般的ASP+VBScript的知識外,你還需要了解xmlhttp對象和正則表達式對象。xmlhttp對象是時下風頭正勁的Ajax的主角;而學好了正則表達式,你再也不用為處理復雜的字符串犯愁。
在編寫和調試正則表達式時,RegEx 這個小工具非常有用。
目錄
抓取一個遠程網頁并保存到本地
改進:處理亂碼
同時下載遠程網頁的圖片(和其它文件)
改進:探測真實URL
改進:避免重復下載
實戰舉例(以****為例)
分析列表頁
內容頁的技巧
分析內容頁中的上一頁,下一頁
高級主題:UTF-8和GB2312的轉換
更多高級主題:登陸后抓取,客戶端偽造
己有的采集程序
原文鏈接:http://gwx.showus.net/blog/article.asp?id=229
1.抓取一個遠程網頁并保存到本地
'用于調試的過程,后面會多次調用檢查中間結果
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
'功能: 把文本或字節流保存為文件
'參數: sContent 要保存的內容
' 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
.Open
If (bText = True) Then .WriteText sContent Else .Write sContent