2017-06-27 16 views
0

現在、私はファイルをダウンロードするために多数のリンク(900+)を持つcsvファイルを持っています。私がやってみたいのは、このCSVファイルからすべてのファイルをダウンロードすることですが、興味のあるWebサイトの特定のページに移動してそこからログインすることによって、Webサイトにログインする必要があるファイルをダウンロードします。Pythonは、URLからファイルをダウンロードします。リンクを使用してcsv

セレンを使ってログインセッションを設定し、繰り返し実行するdriver.getコマンドを使用してダウンロードを開始できますが、これは私の経験ではうまくいかない傾向があります。

Wgetは、ファイル内のリンクを反復してファイルを取得するオプションですが、Webサイトでログインが必要な問題を回避することはできません。

Csvファイルにある一連のダウンロードリンクを反復する最も効率的な実装は何ですか?これらのリンクからすべてのファイルをダウンロードし、これらのファイルをダウンロードできるようにログインセッションを有効にしますか?

EDIT:現在のリクエスト

import requests 
s = requests.Session() 
print(s.cookies.get_dict()) 
s.get("URL of Landing page to generate cookies") 
print(s.cookies.get_dict()) 
s.get("Login page URL") 
+0

'requests.Session'を見て、ログインして他の人にフォローアップすることができます。ダウンロード –

+0

私はそれを簡単に見て、理解しているところから、クッキーを含むブラウザセッションを生成する必要がありますウェブサイトにログインします。今私はセレンを使用してこれを行ってきましたが、それは後でプログラムで必要とするリンクをループするのに役立ちません。しかし、上記のコードを使用すると、次のようなエラーが表示されます。 'SSLError :("悪いハンドシェイク:エラー([( 'SSLルーチン'、 'ssl3_get_server_certificate'、 '証明書の検証に失敗しました')])) ? – cd123

答えて

0

urllib.requestモジュールとそのHTTPBasicAuthHandler()クラスを使用してテストします。

import urllib.request as ur 

mgr = ur.HTTPPasswordMgrWithDefaultRealm() 
mgr.add_password(None, 'url', 'username', 'password') # where url is each url 

auth = ur.HTTPBasicAuthHandler(mgr) 

opener = ur.build_opener(auth) 

rsp = opener.open('url/at/some/path').read() 

ただし、URLのリストを作成してクエリを作成するには、CSVを繰り返し実行する必要があります。

関連する問題