ダウンロードソフト/スクリプトを教えてください。


たとえば、nigitama.com/download.php?id=xxxというURLをリクエストすると、2~3ページほどのPDFファイルが返ってくるとします。
id=xxxのxxxの部分には001~100までの数字がはいります。
数字が異なると違うPDFが返されます。

この100種類のPDFファイルをすべてダウンロードし、それぞれのPDFにクエリのxxxの個所と同じ名前を付けて保存したいと思います。つまり、id=123で返されるPDFファイルを123.pdfという名前で保存するという意味です。

こうした動きを実現するスクリプトやソフトはあるでしょうか?

環境/ソフトは以下の通りです。
Win XP Home
Chrome 1.0、Firefox 3.0、IE 7、Safari 3.2、Sleipnir 2.8

回答の条件
  • 1人2回まで
  • 登録:2009/04/18 14:28:43
  • 終了:2009/04/24 14:14:01

回答(2件)

id:Yoshiya No.1

Yoshiya回答回数1047ベストアンサー獲得回数2802009/04/18 16:05:32

ポイント35pt

ダウンローダー雨をお勧めします。

このソフトを利用すれば、連番のファイルを一括でダウンロードできます。

実際の使い方はソフトのヘルプを見てもらえればわかると思いますが、質問者さんがおやりになりたい事をスクリーンショットにするとこんな感じです。

f:id:Yoshiya:20090418160333j:image

id:Nigitama

ありがとうございます。

試してみましたが、対象ページはログインが必要なサイトだったためできませんでした。Invine (みたいな名前) のソフトも試しましたがやはりダメでした。

最終的に VBA で IE を操作して「名前を付けて保存」するスクリプトを作って解決しました。

またよろしくお願いします。

2009/04/24 14:13:06
id:fester No.2

fester回答回数124ベストアンサー獲得回数202009/04/18 18:49:15

ポイント35pt

VBScriptでWebからファイルダウンロード

を参考に手を加えてみました。


call getHTTPasync("http://www.sio.no-ip.com/mt/shio/DSC_0188.jpg?id=123")

Sub getHTTPasync(strURL)
	on error resume next
	Dim objweb
	Dim arwork
	Dim objADO
	Dim ret,res
'	arwork = split(strURL,"/")
'	strFname = Replace(Wscript.ScriptFullName,Wscript.ScriptName,"") & arwork(Ubound(arwork))
	arwork = split(strURL,"id=")
	strFname = Replace(Wscript.ScriptFullName,Wscript.ScriptName,"") & arwork(Ubound(arwork)) & ".jpg"

	err.clear
	Set objweb = CreateObject("MSXML2.ServerXMLHTTP.6.0")

	'MSXML環境依存なるべく排除
	if err.number <> 0 then
		err.clear
		Set objweb = CreateObject("MSXML2.ServerXMLHTTP")
	end if
	if err.number <> 0 then
		err.clear
		Set objweb = CreateObject("MSXML2.XMLHTTP")
	end if
	
	if err.number = 0 then
		'objweb.Open "GET",strURL,False,"ユーザーID", "パスワード"
		objweb.Open "GET", strURL, False
		objweb.Send
		res = objweb.responseBody
		
		set objADO = CreateObject("ADODB.Stream")
		objADO.Type = 1 'BINARY
		objADO.Open()
		objADO.Write(res)
		objADO.SaveToFile strFname,2 ' SAVE CREATE OVERWRITE
		objADO.Close

		wscript.echo "接続ステータス : " & objweb.Status & " (" & objweb.statusText & ")" & _
		vbCrLf & strFname & " に保存しました"
		Set objADO = Nothing
		Set objweb = Nothing
	else ' err
		wscript.echo "CreateObject失敗."
	end if
 End Sub

id:Nigitama

ありがとうございます。

このスクリプトをどのように修正すればよいのかわからずにあきらめました。結局 VBA でダウンロードするスクリプトを作って解決しました。

またお願いします。

2009/04/24 14:13:53
  • id:takanii
    ダウンロード支援ソフト というキーワードでぐぐるといいかもしれません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません