2017-07-07 4 views
1

私はPython 2用のスクリプトをWebページにログインし、内部を移動して同じサイトを指しているが、別のページを指すファイルに移動します。 Python 2では、資格情報でサイトを開き、接続を他のページに移動できるようにするためにopener.open()を作成します。サイトにログインして別のページをナビゲートする

ここではPython 2で働いていたコードです:

$Your admin login and password 
LOGIN = "*******" 
PASSWORD = "********" 
ROOT = "https:*********" 

#The client have to take care of the cookies. 
jar = cookielib.CookieJar() 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar)) 

#POST login query on '/login_handler' (post data are: 'login' and 'password'). 
req = urllib2.Request(ROOT + "/login_handler", 
         urllib.urlencode({'login': LOGIN, 
             'password': PASSWORD})) 
opener.open(rep) 

#Set the right accountcode 

for accountcode, queues in QUEUES.items(): 
    req = urllib2.Request(ROOT + "/switch_to" + accountcode) 
    opener.open(req) 

私は最初のログインを確立することができますが、私は私が要求モジュールとurllibはして試してみましたPythonの3で同じことを行う必要があり、しかし、私はオープナーがサイトをナビゲートする方法を知らない。私はオープナーディレクターを見つけましたが、目標を達成できなかったので、私はそれをどうやって行うのか分かりません。

私はこのPython 3コードを使用して目的の結果を得ましたが、残念ながら印刷するためにCSVファイルを取得できません。 enter image description here

+0

あなたは私がサイトをナビゲートし続けるにログイン後、ユーザーとパスワードを使用する必要があります原因私のために問題がある –

答えて

0

質問:私はサイトをナビゲートするためにオープナーを維持する方法がわかりません。基本HTTP認証の

のPython 3.6»ドキュメントurllib.request.build_opener

使用:のpython 3とのセッションの

import urllib.request 
# Create an OpenerDirector with support for Basic HTTP Authentication... 
auth_handler = urllib.request.HTTPBasicAuthHandler() 
auth_handler.add_password(realm='PDQ Application', 
         uri='https://mahler:8092/site-updates.py', 
         user='klem', 
         passwd='kadidd!ehopper') 

opener = urllib.request.build_opener(auth_handler) 

# ...and install it globally so it can be used with urlopen. 
urllib.request.install_opener(opener) 
f = urllib.request.urlopen('http://www.example.com/login.html') 
csv_content = f.read() 
+0

を取得し、あなたのpython 3コードとエラーを表示してください(これはなぜオープナーである)とファイルをダウンロードしてください。 –

+0

下記の私のコメントを確認してください。 –

+0

_ **動作しませんでした。** _あなたが持っているレスポンスエラーまたはコードを確認しません。ログインが成功したことを確認しましたか? **あなたのコメントに「回答」を使用しないでください。それに応じてあなたの質問を編集してください。 **あなたの現在の 'Python3'を追加してください。 – stovfl

0

使用のpython要求ライブラリ。 http://docs.python-requests.org/en/master/user/advanced/#session-objects

ログインすると、セッションは自動的に管理されます。独自のクッキージャーを作成する必要はありません。サンプルコードは次のとおりです。

s = requests.Session() 
auth={"login":LOGIN,"pass":PASS} 
url=ROOT+/login_handler 
r=s.post(url, data=auth) 
print(r.status_code) 
for accountcode, queues in QUEUES.items(): 
    req = s.get(ROOT + "/switch_to" + accountcode) 
    print(req.text) #response text 
+0

不幸なことに、仕事をしなかったので、読み始める前に必要なログインを完了できません。 –

+0

パラメータを適切に変更しましたか?ユーザ名とパスワードについては、 – specialscope

+0

はい、私はしましたが、私はその認証を完了できないようです。パスワードとユーザーは、私が動作するブラウザで試してみるたびに大丈夫です –

関連する問題