2017-06-11 11 views
0

私はファイルをダウンロードする方法について何時間も探していました。the documentationは私にこれを行う方法を示しています。 cygwinは恐ろしく、使用するのに煩わしいものです。私はこれをPython 3でプログラムに実装しようとしています。私はurllib、リクエスト、wget(Pythonで)、httplibなどを使用しようとしました。しかし、リダイレクトされたページを取得しただけです(適切な形式のURLでURLバーにリンクを貼り付けた場合と同じように取得されます)。htmlからファイルをダウンロードしていますか? pythonを使ったURL 3

私はページを検査して、同じアドレス私は試して、それは正常に動作し、ダウンロードポップアップを私に提供します。 Here is an example page "データをダウンロードする"をクリックするとリンクが起動します

pythonパッケージが適切なget要求を送信できないこと、そしてこのプログラムをLinuxでのみ実装する必要があることを私は知ることができません。 wget '。

誰かが適切にURLを呼び出す方法についての手掛かりを持っていますか?

+0

あなたはurllib.requestsを試しましたか? (urllib.requests.retreive)) – Rosh

+0

私はurllib.request.urlretreiveを試しました。 –

答えて

0

URLの末尾にを追加してデータをダウンロードする必要があります。 google chromeのinspect要素のネットワークタブでこれを見ることができます。私は助けてくれるといいですね!

+0

私はSrc = "http://climate.weather.gc.ca/climate_data/bulk_data_e.html?format=csv&stationID={stat}&Year = str、yr = yr、mth = mss、day = tf = TimeF) この記事は、以前は次のIDで公開されていました: srcは、私がライブラリで試したクエリ要求の入力であり、うまくいかず、メインページにリダイレクトされました。 –

0

私は

from subprocess import call 

def download(URL) 
     CMD = ['curl',url] 
     call(CMD) 

これを実行すると思う:あなたはインタプリタからこれを使用したい場合は

download('www.download.com/blah/bah/blah') 

を: P.S.

module.py

python -i /path/to/module.py 

>>>download('www.download.com/blah/bah/blah') 
として保存私のコメント:これが動作するかどうか私は私のシェルプログラムでこの

EDIT使用をPROBます

を私はこれは私がすべてのために何をすべきかです

from subprocess import call 
def download(FILE,URL): 
    #FILE = file to save to 
    #URL - download from here 
    CMD = ['curl','-o',FILE,URL] 
    call(CMD) 

これを試してみましたし、「不正なURL」エラーが発生しましたpythonのシステムコマンドはcurlと何か関係があります。

+0

バニラ・カールでは、いくつかのオプションがあり、適切なヘッダーを送信するか、適切なオプションを指定すると動作しませんが、有効で無効なリクエストであっても同じ応答を示します。私は今すぐurllibで1つの良い応答を得ました。 –

+0

ok idkコメントのコードをどうやって行うのですか?私の答えは正しいと思います。 – Josh

+0

私の提案は、bashのカールに慣れ親しんだり(私はそうではありません)、次にPythonで動作させる方法を知っています。コマンドを変数名CMDに設定してください(私の回答にあるように、コール・トゥ・スペースでリストを作成する必要があります) – Josh

関連する問題