时间:2022-09-24 10:42:28
一直很喜欢CFan博墅的内容,各位博主的文章写得都很精彩,想收藏起来慢慢品味,但一直没找到支持收藏CFan博墅的工具。于是乎我就自制了一个简单的收藏工具,可以将CFan的文章下载到本地,留着以后慢慢品味。
有兴趣的朋友可以从/cfan/200910/cfanblog.rar下载脚本。解压后,双击运行其中的cfanblog.vbs,输入CFan博墅的UID(即网址中uid后面的数字),点击“确定”,选择文件保存位置,即可下载相应的博墅文章了。要注意的是,下载可能有点慢,运行后不用管它,做其他的工作,再回来时就会发现指定的博墅文章已全部下载了。
因为代码有点长,这里挑其中一些有意思的代码稍作分析,以供大家参考:
on error resume next
u=inputbox("输入Cfan博墅UID","Cfan博墅收藏工具","11702")
Set ptt = createobject("shell.application").BrowseForFolder(0,"选择保存位置:",0)
path = ptt.self.path
createobject("scripting.filesystemobject").createfolder(path & "\cfan\")
这段代码,通过inputbox函数调用输入窗口,以便我们指定想要收集文章的具体博墅。接着通过createobject().BrowseForFolder()让我们确定文件保存位置,末一个createobject().createfolder()则是在指定目录下新建cfan子目录。
set xml = createobject("Microsoft.XMLHTTP")
xml.Open "GET",url,0
xml.Send()
s = zhuanghuan(xml.responsebody)
这一段是用来获取博客网页源文件的,最后一行中的zhuanghuan是一个自定义的转换函数,它的具体执行代码,见脚本文件的开始处。
set sGet = CreateObject("ADODB.Stream")
sGet.Mode = 3
sGet.Type = 1
sGet.Open()
sGet.Write xml.responsebody
sGet.SaveToFile n,2
在经过前面的地址分析、源文件获取之后,最后创建ADODB.Stream对象,并通过它的SaveToFile(保存到文件)方法保存网页。
这一脚本中,正则表达式起到了很大作用,不过这不是一两句话可以说清楚的。还好本刊2008年19期中有一个大专题《CFan小编选拔大赛》,对正则表达式有比较全面的介绍,大家可以参考。另外,本文作者还为百度空间定制了博文自动下载脚本,同样包含在上文提供的文件包中。