2

mechanize を使用して Web サイトにログインしようとしています。「br.form」を印刷すると、資格情報がフォームに入力されていることがわかります。しかし、実際にフォームを適切に送信する方法がわかりません。

「br.submit()」を使用し、br.title() を印刷して次のページに進んだことを確認しようとしましたが、表示されるタイトルはログイン画面のものであり、ログイン後の画面のものではありません。

import mechanize
from time import sleep
def reportDownload():

    # Prompt for login credentials
    print("We require your credentials.")
    Username = raw_input("Please enter your username. ")
    Password = raw_input("Please input your password. ").encode('base64')

    URL = "https://login.xxxxxxxxx.com/"    
    br = mechanize.Browser()
    br.open(URL)    
    br.select_form(nr=0)

    br['username'] = Username
    br['pw'] = Password.decode('base64')

    print br.form       
    # Login 
    br.submit() 

    # print page title to confirm proper login
    print br.title()

reportDownload()
4

1 に答える 1

2

これにより、何が起こっているのかをよりよく理解できるかもしれません。

response = br.submit()
print response.read()

mechanize でデバッグを有効にすると、おそらく一般的に役立つでしょう。

br.set_debug_http(True)
br.set_debug_responses(True)
于 2012-07-20T07:14:18.560 に答える