我爱电脑技术论坛's Archiver

tts669 发表于 2008-8-17 09:23

百度blog备份脚本baidublogbak.vbs

作者:lcx
代码
'=========================================================================================================   
   
'用法示例:   
'cscript bak.vbs 百度用户名 第I页 至第n页 目录列表.htm 用户名 密码   
'例如我的blgo示例:   
'cscript baidublogbak.vbs myvbscript 0 3 url.htm myvbscript mima   
'表示从第0页备份到第3页,blog的共有页数打开[url]http://hi.baidu.com/[/url]用户名/blog/index/0就可以看到了。url.htm存放的是目录列表   
'注意的是百度是从0页计数的   
'如果用户名和密码随便写也可以备份,但是无法备份私有文档   
'推荐几页几页备份,最好建单独一个目录将bak.vbs放进去,会在当前目录生成mht文档。因为有的网络原因,有的无法成mht,请对照url.htm目录列表检查   
'====================================================================================================   
   
On Error Resume next   
if (lcase(right(wscript.fullname,11))="wscript.exe") then   
wscript.echo "Execute it under the cmd.exe Plz! Thx."   
wscript.quit   
end if   
   
Const adSaveCreateNotExist = 1   
Const adSaveCreateOverWrite = 2   
Const adTypeBinary = 1   
Const adTypeText = 2   
   
Set args = WScript.Arguments   
   
if args.Count = 0 then   
WScript.Echo "Usage: CScript baidublogbak.vbs blogname i n url.htm username password"   
WScript.Quit 1   
end If   
   
Set objMessage = CreateObject("CDO.Message")   
Set ie=WScript.CreateObject("InternetExplorer.Application")   
ie.visible=true   
ie.navigate "http://passport.baidu.com/?login"   
   
Do   
Wscript.Sleep 200   
Loop Until ie.ReadyState=4   
ie.document.getElementById("username").value=args.Item(4)   
ie.document.getElementById("password").value=args.Item(5)   
tj=ie.document.getElementsBytagname("form")   
tj.submit   
WScript.Sleep 10000   
Sub SaveToFile(Msg, Fn)   
Dim Strm, Dsk   
Set Strm = CreateObject("ADODB.Stream")   
Strm.Type = adTypeText   
Strm.Charset = "gb2312"   
Strm.Open   
Set Dsk = Msg.DataSource   
Dsk.SaveToObject Strm, "_Stream"   
Strm.SaveToFile Fn, adSaveCreateOverWrite   
End Sub   
   
For n=args.Item(1) To args.Item(2) Step 1   
   
url="http://hi.baidu.com/"&args.Item(0)"/blog/index/"&n   
ie.Navigate url   
ie.visible=false   
   
While ie.Busy   
WScript.Sleep 100   
Wend   
   
Do   
Wscript.Sleep 200   
Loop Until ie.ReadyState=4   
   
wscript.echo "正保存第"&n"页"   
Wscript.Sleep 3000   
   
For i=0 To ie.Document.links.length-1   
If InStrRev(ie.Document.links(i).href,"blog/item/",-1,1)<> 0 And InStrRev(ie.Document.links(i).innerText,"浏览",-1,1)= 0 And InStrRev(ie.Document.links(i).href,"#comment",-1,1)= 0 And InStrRev(ie.Document.links(i).href,"cmtid",-1,1)= 0then   
wscript.echo ie.Document.links(i).href "||"&ie.Document.links(i).innerText   
CreateObject("Scripting.FileSystemObject").OpenTextFile(args.Item(3),8,True,0).WriteLine(ie.Document.links(i).href "||"&ie.Document.links(i).innerText)   
objMessage.CreateMHTMLBody ie.Document.links(i).href   
SaveToFile objMessage, ie.Document.links(i).innerText".mht"   
End if   
   
Next   
   
next   
   
ie.quit   
Set ie=nothing

页: [1]
   

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.