VBScript : 手書きブログAPIで画像ダウンロード


  種別毎に最大50ダウンロードします




API としては、まだまだ使い道がはっきりしないものですが、種別毎に最大50枚の URL を取得できる
ので最近の画像をダウンロードするという目的にならば使えるとと思います。上書き操作ですから、バック
アップとしてここ最近の更新したものをダウンロードするのであれば、手書きブログ側でいったん下書き
にして公開すれば最新でダウンロードできます。

Call ImgDoenload(1,"日記")

は、最初の引数が種別で、二つ目はダウンロードするディレクトリです。
無ければ作成します。

API の都合で、API を一度呼ぶと次は60秒後にするよう pipa が取りきめているので、Popup で
停止しています。( 60秒経つと、自動的に閉じるので OK はクリックしないで下さい

api_img_download.vbs
' ***********************************************************
' API を取得して、ユーザー番号とをそれぞれ設定して下さい
' 
' ※ 仕様なので、タイプ毎に際出す50しか画像を取得できません
' ※ それ以上が必要な場合は、タグで分類するしかありませんが
' ※ ソースコードを多少変更する必要があります
' ***********************************************************
strAPI = "APIキー"
strUSER = "ユーザー番号"


' ***********************************************************
' ( 連続実行を想定しているので、クライアント用オブジェクト )
' ***********************************************************
Set objHTTP = Wscript.CreateObject("MSXML2.XMLHTTP")
Set objHTTPDownload = Wscript.CreateObject("MSXML2.XMLHTTP")
' ***********************************************************
' 画像保存用
' ***********************************************************
Set Stream = Wscript.CreateObject("ADODB.Stream")
' ***********************************************************
' Popup wait 用
' ***********************************************************
Set WshShell = WScript.CreateObject("WScript.Shell")
' ***********************************************************
' フォルダ作成 用
' ***********************************************************
Set Fso = CreateObject( "Scripting.FileSystemObject" ) 


' ***********************************************************
' ダウンロード
' ***********************************************************
Call ImgDoenload(1,"日記")
Call Wait60("1/6")

Call ImgDoenload(2,"イラスト")
Call Wait60("2/6")

Call ImgDoenload(3,"企画")
Call Wait60("3/6")

Call ImgDoenload(4,"告知")
Call Wait60("4/6")

Call ImgDoenload(5,"漫画")
Call Wait60("5/6")

Call ImgDoenload(99,"その他")

Wscript.Echo "処理が終了しました"


' ***********************************************************
' 関数
' ***********************************************************
Function Wait60(message)

	Call WshShell.Popup(message & " : 次のAPI実行まで60秒間お待ち下さい(OKはクリックしないで下さい)",60)

End Function

Function ImgDoenload( strNo, DirPath )

	strUrl = "http://tegaki.pipa.jp/GetBlogList.jsp?AK="&strAPI&"&UD="&strUSER&"&NM=50&TD="&strNo

	Call objHTTP.open("GET",strUrl,False)
	Call objHTTP.send( )
	Set xml = objHTTP.responseXML

	Set objList = xml.getElementsByTagName("file")
	length = objList.length

	if length <> 0 then
		if not Fso.FolderExists( DirPath ) then
			Fso.CreateFolder(DirPath)
		end if
	end if

	For I = 0 to length - 1

		' API 内の サムネイルの URL
		strUrlPath1 = objList(I).firstChild.nodeValue
		' 大きい画像の URL
		strUrlPath2 = Replace(strUrlPath1, "_S.jpg" ,"")

		' 保存ファイル名
		aPath = Split(strUrlPath2,"/")
		strLocalName = aPath(UBound(aPath))
		aPath = Split(strUrlPath1,"/")
		strLocalNameS = aPath(UBound(aPath))

		Call objHTTPDownload.Open("GET", strUrlPath2, False ) 
		objHTTPDownload.Send 

		Stream.Open 
		Stream.Type = 1	' バイナリ 
		Stream.Write objHTTPDownload.responseBody 
		Stream.SaveToFile DirPath & "\" & strLocalName, 2 
		Stream.Close 

		Wscript.Sleep 10 

		Call objHTTPDownload.Open("GET", strUrlPath1, False ) 
		objHTTPDownload.Send 

		Stream.Open 
		Stream.Type = 1	' バイナリ 
		Stream.Write objHTTPDownload.responseBody 
		Stream.SaveToFile DirPath & "\" & strLocalNameS, 2 
		Stream.Close 

		Wscript.Sleep 10 

	Next

End Function















yahoo  google  MSDN  MSDN(us)  WinFAQ  Win Howto  tohoho  ie_DHTML  vector  wdic  辞書  天気 


[sh_web]
CCBot/2.0 (http://commoncrawl.org/faq/)
17/06/24 09:08:50
InfoBoard Version 1.00 : Language=Perl

BatchHelper COMprog CommonSpec Cprog CprogBase CprogSAMPLE CprogSTD CprogSTD2 CprogWinsock Cygwin GameScript HTML HTMLcss InstallShield InstallShieldFunc JScript JScriptSAMPLE Jsfuncs LLINK OldProg OracleGold OracleSilver PRO PRObrowser PROc PROconePOINT PROcontrol PROftpclient PROjscript PROmailer PROperl PROperlCHAT PROphp PROphpLesson PROphpLesson2 PROphpLesson3 PROphpfunction PROphpfunctionArray PROphpfunctionMisc PROphpfunctionString PROsql PROvb PROvbFunction PROvbString PROvbdbmtn PROvbonepoint PROwebapp PROwin1POINT PROwinSYSTEM PROwinYOROZU PROwindows ProjectBoard RealPHP ScriptAPP ScriptMaster VBRealtime Vsfuncs a1root access accreq adsi ajax amazon argus asp aspSample aspVarious aspdotnet aw2kinst cappvariety centura ckeyword classStyle cmaterial cmbin cmdbapp cmenum cmlang cmlistbox cmstd cmstdseed cmtxt cs daz3d db dbCommon dbaccess dnettool dos download flex2 flex3 flex4 framemtn framereq freeWorld freesoft gimp ginpro giodownload google hdml home hta htmlDom ie9svg install java javaSwing javascript jetsql jquery jsp jspTest jspVarious lightbox listasp listmsapi listmsie listmsiis listmsnt listmspatch listmsscript listmsvb listmsvc memo ms msde mysql netbeans oraPlsql oracle oracleWiper oraclehelper orafunc other panoramio pear perl personal pgdojo pgdojo_cal pgdojo_holiday pgdojo_idx pgdojo_ref pgdojo_req php phpVarious phpguide plsql postgres ps r205 realC realwebapp regex rgaki ruby rule sboard sc scprint scquest sdb sdbquest seesaa setup sh_Imagick sh_canvas sh_dotnet sh_google sh_tool sh_web shadowbox shgm shjquery shvbs shweb sjscript skadai skywalker smalltech sperl sqlq src systemdoc tcpip tegaki three toolbox twitter typeface usb useXML vb vbdb vbsfunc vbsguide vbsrc vpc wcsignup webanymind webappgen webclass webparts webtool webwsh win8 winofsql wmi work wp youtube