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
  

関連する記事




  ソースコード



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

<JOB>
<COMMENT>
************************************************************
 EXPORT ( バッチ処理用 )
 Seesaa からブログのバックアップデータを取得する

************************************************************
</COMMENT>

<OBJECT id="objHTTP" progid="Msxml2.ServerXMLHTTP" />
<OBJECT id="Stream" progid="ADODB.Stream" />

<SCRIPT language=VBScript>
' ***********************************************************
' 処理開始
' ***********************************************************
bDebug = False
target_year = WScript.Arguments(0)
target_month = WScript.Arguments(1)

emailData = "メールアドレス"
passData = "パスワード"
' バックアップしたいブログの ID を指定します
blogData = "9999999"

' ***********************************************************
' (1) : POST
' ***********************************************************
' ログイン URL
Call objHTTP.Open("POST","https://ssl.seesaa.jp/www/pages/welcome/login/input",False)
' POST 用ヘッダ
Call objHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
strData = ""
strData = strData & "member__email=" & emailData
strData = strData & "&member__password=" & passData
Call objHTTP.SetRequestHeader("Content-Length",Len(strData))
Call objHTTP.Send(strData)

strHeaders = objHTTP.getAllResponseHeaders()
if bDebug then
	Wscript.Echo strHeaders
end if

' ***********************************************************
' (2) : GET
' ***********************************************************
' 対象ブログ URL
Call objHTTP.Open("GET","http://blog.seesaa.jp/pages/my/blog/home/?blog_id=" & blogData, False)
' 特にクッキーを送らなくても処理できるようです
'Call objHTTP.setRequestHeader("Cookie", strCookie )
Call objHTTP.Send()

'Set OutObj = Fs.OpenTextFile( "log.txt", 2, True )
'OutObj.Write objHTTP.responseText
'OutObj.Close

if bDebug then
	Wscript.Echo "開始"
end if

' ***********************************************************
' (3) : Export
' ***********************************************************
boundary = DateDiff("s", "1970/1/1 0:00:00",DateAdd("h",-9,now))
h_boundary = "---------------------------" & boundary

' ソース内テキストデータの表示
str = RegTrim(GetResource("myTextData"))
str = Replace( str, "$B", boundary )
str = Replace( str, "$YEAR", target_year )
str = Replace( str, "$MONTH", target_month )
if bDebug then
	Wscript.Echo str
end if

Call objHTTP.Open( "POST","http://blog.seesaa.jp/pages/my/blog/tools/mt/export", False )
' POST 用 HTTP ヘッダ
Call objHTTP.setRequestHeader("Content-Type", "multipart/form-data; boundary=" & h_boundary)
' 念のため
Call objHTTP.setRequestHeader("Referer", "http://blog.seesaa.jp/pages/my/blog/tools/mt/input" )
Call objHTTP.SetRequestHeader("Content-Length",Len(str))
Call objHTTP.Send(str)

Stream.Open
Stream.Type = 1 ' バイナリ
Stream.Write objHTTP.responseBody
Stream.SaveToFile "seesaa_" & blogData & "_" & target_year & target_month & ".log", 2
Stream.Close   

Wscript.Echo "処理が終了しました:" & target_year & "_" & target_month

' ***********************************************************
' 文字列前後の漢字スペースを含むホワイトスペースの削除
' ***********************************************************
Function RegTrim( strValue )

	Dim regEx, str

	Set regEx = New RegExp
	regEx.IgnoreCase = True
	regEx.Pattern = "^[ \s]+"
	str = regEx.Replace( strValue, "" )
	regEx.Pattern = "[ \s]+$"
	RegTrim = regEx.Replace( str, "" )

End Function
</SCRIPT>

<COMMENT>
************************************************************
 ソース内テキストデータ
************************************************************
</COMMENT>
<RESOURCE id="myTextData">
<![CDATA[
-----------------------------$B
Content-Disposition: form-data; name="encode"

utf8
-----------------------------$B
Content-Disposition: form-data; name="year_month"

$YEAR-$MONTH
-----------------------------$B--
]]>
</RESOURCE>

</JOB>
















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





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

SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ