晰带语法着色的版本:http://gwx.showus.net/blog/article.asp?id=229
原创很辛苦,转载请注明原文链接:http://gwx.showus.net/blog/article.asp?id=229
web采集程序?网页抓取程序?小倫程序?不管怎么叫,这种程序应用倒是蛮广的。本文不讨论这种使用这种程序引起的版权或道德问题,只谈这种程序在ASP+VBScript环境下的实现:-)
预备知识:除了一般的ASP+VBScript的知识外,你还需要了解xmlhttp对象和正则表达式对象。xmlhttp对象是时下风头正劲的Ajax的主角;而学好了正则表达式,你再也不用为处理复杂的字符串犯愁。
在编写和调试正则表达式时,RegEx这个小工具非常有用。
目录
抓取一个远程网页并保存到本地
改进:处理乱码
同时下载远程网页的图片(和其它文件)
改进:探测真实URL
改进:避免重复下载
实战举例(以****为例)
分析列表页
内容页的技巧
分析内容页中的上一页,下一页
高级主题:UTF-8和GB2312的转换
更多高级主题:登陆后抓取,客户端伪造
己有的采集程序
原文链接:http://gwx.showus.net/blog/article.asp?id=229
1.抓取一个远程网页并保存到本地
'用于调试的过程,后面会多次调用检查中间结果
DiminDebug:inDebug=True
SubD(Str)
IfinDebug=FalseThenExitSub
Response.Write("<divstyle='color:#003399;border:solid1px#003399;background:#EEF7FF;margin:1px;font-size:12px;padding:4px;'>")
Response.Write(Str&"</div>")
Response.Flush()
EndSub
'过程:Save2File
'功能:把文本或字节流保存为文件
'参数:sContent要保存的内容
'sFile保存到文件,形如"files/abc.htm"
'bText是否是文本
'bOverWrite是否覆盖己存在文件
SubSave2File(sContent,sFile,bText,bOverWrite)
CallD("Save2File:"+sFile+"*是否文本:"&bText)
DimSaveOption,TypeOption
If(bOverWrite=True)ThenSaveOption=2ElseSaveOption=1
If(bText=True)ThenTypeOption=2ElseTypeOption=1
SetAds=Server.CreateObject("Adodb.Stream")
WithAds
.Type=TypeOption