VBScript : Seesaa のエクスポートをローカルPCからバッチで実行する

  Seesaa ブログのバックアップ



実際のサーバーとのデータのやり取りをチェックすると、成功した場合は Soap でなにやらやってるようなのですが、それについては良く解りませんでした。とにかく実行すると正しく取得できました。

Windows の Task Scheduler で夜間バッチを想定していますので、バッチファイルは以下のようになります( sleep.vbs は、script.Sleep(5000) のみ書かれたスクリプトです )

  
cscript.exe logicalerror_export.wsf 2010 01

sleep.vbs
cscript.exe logicalerror_export.wsf 2010 02

sleep.vbs
cscript.exe logicalerror_export.wsf 2010 03

sleep.vbs
cscript.exe logicalerror_export.wsf 2010 04

sleep.vbs
cscript.exe logicalerror_export.wsf 2010 05

sleep.vbs
cscript.exe logicalerror_export.wsf 2010 06
  

関連する記事

 PHP+VBS : デスクトップ/Twitterへのアクセス準備
 PHP : TwitterAPI : Access Token取得
 PHP : TwitterAPI : 資格情報の確認
 PHP + Twitpic API v2 で画像アップロード
 VBScript : Twitpic に画像をアップロード
 VBScript : Picasa へ画像ファイルをアップロード
 VBScript : ココログマイフォトに画像アップロード
 PHP : bit.ly を使用した専用短縮URLサービス作成
 PHP : Google ドキュメントのセルのAPI更新
 PHP+Zend : Picasa APIアップロード
 PHP : cURL でFTPESダウンロード
 PHP : CodeIgniter+TwitterAPI投稿
 VBScript : Twitter API を呼び出して投稿する
 VBScript でバッチ twitter 投稿
 VBScript でバッチ mixi ボイス投稿
 Python3.1 : mixi ボイスへ投稿
 VBScript : Seesaaの禁止ワード一括登録
 VBScript : Seesaaブログのエクスポート
 VBScript : XML-RPC で Seesaa に投稿
 VBScript : 手書きブログAPIで画像ダウンロード
 Ruby+Mechanize : Twitter 投稿
 Ruby+Mechanize : Seesaa最新情報更新
 Ruby+Mechanize : Seesaaアクセス解析情報



  ソースコード



Msxml2.ServerXMLHTTP を使わないと、HTTP ヘッダの受け渡しが実行されません。Msxml2.XMLHTTP では、単独の読み出しは成功しますが、ヘッダーの受け渡しを前提とした連続アクセスでは、ドメイン間のデータアクセスを有効にする必要があります

001.<JOB>
002.<COMMENT>
003.************************************************************
004. EXPORT ( バッチ処理用 )
005. Seesaa からブログのバックアップデータを取得する
006. 
007.************************************************************
008.</COMMENT>
009. 
010.<OBJECT id="objHTTP" progid="Msxml2.ServerXMLHTTP" />
011.<OBJECT id="Stream" progid="ADODB.Stream" />
012. 
013.<SCRIPT language=VBScript>
014.' ***********************************************************
015.' 処理開始
016.' ***********************************************************
017.bDebug = False
018.target_year = WScript.Arguments(0)
019.target_month = WScript.Arguments(1)
020. 
021.emailData = "メールアドレス"
022.passData = "パスワード"
023.' バックアップしたいブログの ID を指定します
024.blogData = "9999999"
025. 
026.' ***********************************************************
027.' (1) : POST
028.' ***********************************************************
029.' ログイン URL
030.Call objHTTP.Open("POST","https://ssl.seesaa.jp/www/pages/welcome/login/input",False)
031.' POST 用ヘッダ
032.Call objHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
033.strData = ""
034.strData = strData & "member__email=" & emailData
035.strData = strData & "&member__password=" & passData
036.Call objHTTP.SetRequestHeader("Content-Length",Len(strData))
037.Call objHTTP.Send(strData)
038. 
039.strHeaders = objHTTP.getAllResponseHeaders()
040.if bDebug then
041.    Wscript.Echo strHeaders
042.end if
043. 
044.' ***********************************************************
045.' (2) : GET
046.' ***********************************************************
047.' 対象ブログ URL
048.Call objHTTP.Open("GET","http://blog.seesaa.jp/pages/my/blog/home/?blog_id=" & blogData, False)
049.' 特にクッキーを送らなくても処理できるようです
050.'Call objHTTP.setRequestHeader("Cookie", strCookie )
051.Call objHTTP.Send()
052. 
053.'Set OutObj = Fs.OpenTextFile( "log.txt", 2, True )
054.'OutObj.Write objHTTP.responseText
055.'OutObj.Close
056. 
057.if bDebug then
058.    Wscript.Echo "開始"
059.end if
060. 
061.' ***********************************************************
062.' (3) : Export
063.' ***********************************************************
064.boundary = DateDiff("s", "1970/1/1 0:00:00",DateAdd("h",-9,now))
065.h_boundary = "---------------------------" & boundary
066. 
067.' ソース内テキストデータの表示
068.str = RegTrim(GetResource("myTextData"))
069.str = Replace( str, "$B", boundary )
070.str = Replace( str, "$YEAR", target_year )
071.str = Replace( str, "$MONTH", target_month )
072.if bDebug then
073.    Wscript.Echo str
074.end if
075. 
076.Call objHTTP.Open( "POST","http://blog.seesaa.jp/pages/my/blog/tools/mt/export", False )
077.' POST 用 HTTP ヘッダ
078.Call objHTTP.setRequestHeader("Content-Type", "multipart/form-data; boundary=" & h_boundary)
079.' 念のため
080.Call objHTTP.setRequestHeader("Referer", "http://blog.seesaa.jp/pages/my/blog/tools/mt/input" )
081.Call objHTTP.SetRequestHeader("Content-Length",Len(str))
082.Call objHTTP.Send(str)
083. 
084.Stream.Open
085.Stream.Type = 1 ' バイナリ
086.Stream.Write objHTTP.responseBody
087.Stream.SaveToFile "seesaa_" & blogData & "_" & target_year & target_month & ".log", 2
088.Stream.Close  
089. 
090.Wscript.Echo "処理が終了しました:" & target_year & "_" & target_month
091. 
092.' ***********************************************************
093.' 文字列前後の漢字スペースを含むホワイトスペースの削除
094.' ***********************************************************
095.Function RegTrim( strValue )
096. 
097.    Dim regEx, str
098. 
099.    Set regEx = New RegExp
100.    regEx.IgnoreCase = True
101.    regEx.Pattern = "^[ \s]+"
102.    str = regEx.Replace( strValue, "" )
103.    regEx.Pattern = "[ \s]+$"
104.    RegTrim = regEx.Replace( str, "" )
105. 
106.End Function
107.</SCRIPT>
108. 
109.<COMMENT>
110.************************************************************
111. ソース内テキストデータ
112.************************************************************
113.</COMMENT>
114.<RESOURCE id="myTextData">
115.<![CDATA[
116.-----------------------------$B
117.Content-Disposition: form-data; name="encode"
118. 
119.utf8
120.-----------------------------$B
121.Content-Disposition: form-data; name="year_month"
122. 
123.$YEAR-$MONTH
124.-----------------------------$B--
125.]]>
126.</RESOURCE>
127. 
128.</JOB>















   SQLの窓    create:2010/06/05  update:2018/02/18   管理者用(要ログイン)





フリーフォントWEBサービス

SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ