2011-01-13 15 views
0

私はWSHスクリプトを使用してWebページからExcelファイルをダウンロードしようとしていますVBScriptからJavascript関数を実行するにはどうすればよいですか?

私の目的は、ウェブページからExcelファイルを自分のマシンに保存することです。

これまでは、httpsウェブページにログインしたvbsファイルを作成して、新しいタブを開く2番目の実行コマンドを使用して別のページにリダイレクトしましたが、ウェブサイト上のダウンロードリンクからハードドライブ上の場所にファイルをダウンロードする方法に関する解決策を見つけることはできません。

Dim wshShell 
Set wshShell = CreateObject("WScript.Shell") 
WshShell.Run "URL", 9 
wscript.sleep 3000 
WshShell.SendKeys "[email protected]" 
WshShell.SendKeys "{tab}" 
WshShell.SendKeys "password" 
WshShell.SendKeys "{enter}" 
WshShell.Run "Another_URL" 

は今、この時点で手動クリックすると独特のダウンロードリンクを生成javascript関数javascript:download(parameters)を持っているダウンロードリンクがあります。

Wscriptを使用してこれをダウンロードする方法はありますか?私はそれがWindows 7とIE 7で動作するようにしたいと考えています。私はそれを調べてみましたが、役に立たないです。

私はHTTPS要求のためにそれを使用していないが、私はこの

option explicit 

Const URL = "http://url/to/file.xls" 
Const adTypeBinary = 1 
Const adSaveCreateOverWrite = 2 

' request the file over http 
dim http: set http = CreateObject("MSXML2.XMLHTTP") 
http.open "GET", URL, false 
http.send 

' write the response text to a binary file 
dim stream: set stream = CreateObject("ADODB.Stream") 
stream.type = adTypeBinary 
stream.open 
stream.write http.responseBody 
stream.SaveToFile "output.xls", adSaveCreateOverWrite 
stream.close 

のようなスクリプトを使用して、いくつかの成功を収めてきた

答えて

0

は、私は、サーバーが第4回としてユーザ名とパスワードを受け入れることを想定していますMSXML2.XMLHTTPopenコールには5番目のパラメータを指定します。

http.open "GET", URL, false, "[email protected]", "password" 

は、私はそれを試してみたし、それは確かにそうですねADODBストリーム


に代わる上記の可能性のための

は、httpリクエストのためのhttp://msdn.microsoft.com/en-us/library/ms759148(VS.85).aspxhttp://msdn.microsoft.com/en-us/library/ms675032(VS.85).aspx参照プレーンhttpリクエスト上で動作しますInternet Explorerのオートメーションオブジェクトを使用します。私は、ファイルのダウンロードを扱うことができるかわからないんだけど、次のスニペットはあなたに

option explicit 

' create an instance of IE 
dim ie: set ie = CreateObject("InternetExplorer.Application") 
' load a url 
ie.Navigate "http://stackoverflow.com/questions/4677595/how-can-i-execute-a-javascript-function-from-vbscript" 
' sleep while IE loads the content 
do while ie.busy 
    WScript.Sleep 10 
loop 
'access the document object 
dim doc: set doc = ie.document 

' have IE natvigate to a link on the downloaded page. this could be your 
' download link perhaps? 
ie.Navigate doc.anchors(0).href 
' wait while the new page loads... 
do while ie.busy 
    WScript.Sleep 10 
loop 
' output the new content 
WScript.Echo doc.documentElement.innerHTML 
' close IE 
ie.Quit 
+0

を出発点を与えるかもしれないこれは、HTTPS生成されたリンクです:// Fixed_URL/Random_No_Generated _tbldnld =(第一のparam) &sc =(fnの2番目のパラメータ)手動でこれが起こります。ダウンロードをクリックすると、ファイルダウンロードボックスが開き、そこで保存をクリックして場所に保存します。 URLにはファイル名はありませんが、名前はランダム番号と同じです。だから、もし私がスクリプトやプログラムを書かなければならない場合は、この現象を擬態的に模倣することができますか?私を案内してください。なぜそうではありませんか?あなたはオラクル認定の教授です。 。 – tangyorangesour

関連する問題