0

Python mechanize を使用して Web ページにログインしようとしています。正しいフォームを見つけるのに問題があるため、URL (コードが変更される可能性があります) を投稿する代わりに、将来のユーザーのためにコードの一部をここにコピーします。私はこれを読みましたが、決定的な答えはあまりないようでした。

とにかく、このチュートリアルでは、フォームを取得するまで機械化を使用してすべてを行いました。

私が電話するとき:

for form in br.forms():
    print form

私は戻ってきます:

POST https://www.myexample.com/x-www-form-urlencoded
HiddenControl(utf8=✓) (readonly)
HiddenControl(authenticity_token=BfqPL1ilOXeg08Or/CEBAiK4duWgncY=      
CheckboxControl(affiliate[remember_me]=[1])

生の HTML を見ると、次のように表示されます。

<label for="affiliate_email">Email<./label>
<.input autofocus="autofocus" id="affiliate_email" 
    name="affiliate[email]" size="30" type="email" />

ただし、メール フィールドを選択しようとすると、フォームが見つからないというエラーが表示されます。

br.select_form(name="affiliate[email]")
# updated to 
br.select_form(nr=0)
# Now what do I do here to enter something into that form?
br.form['someIDhere']='myEmail@example.com'

また、フォーム ID や他の多くの可能なフォーム名を使用してみました。br.forms() でフォームを印刷すると奇妙な結果が返される理由がわかりません。これは、サイトがログインフォームに JavaScript を使用していることを意味しますか?

前もって感謝します!

4

1 に答える 1

0

affiliate[email]フォームの名前ではなく、フォーム内の入力の名前です。使用してみてください:

br.select_form(nr=0)

フォームに名前がなく、ページの最初/唯一のフォームである場合。

于 2013-04-01T07:09:42.713 に答える