用asp+xmlhttp编写web采集程序

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3140.html