2011-12-15 8 views
2

私はlogin.live.comにログインしようとしていますが、Mechanizeはそのページにフォームがあることを認識しません。誰にも何か提案はありますか?Python Mechanizeはlogin.live.comフォームを見つけることができません

br=mechanize.Browser() 
br.open('https://login.live.com/') 
br.select_form(nr=0) 

これは、その結果:はっきりとそのページ上のフォームがある場合

mechanize._mechanize.FormNotFoundError: no form matching nr 0

答えて

3

代わりにbr.select_form(name="f1")という名前でフォームを取得してみてください。

+1

申し訳ありませんが、私はmechanizeをインストールして試しました。うまくいかなかった:/。 – aganders3

1

問題は、フォームがHTTP GETリクエストへの応答として配信されるHTMLではないということです -

(私はあなたがログインフォームをしたいと仮定します。私は、ページのソースからフォームの名前を得ました) 。後で、ブラウザで実行されるjavascriptスクリプトの結果として作成されています。

動的に生成されたコンテンツを取得する方法の詳細については、this questionの回答をご覧ください。

+0

答えをありがとう。私はparamatersをurllibとurllib2を適切に使って渡すことができるようです。クッキーを有効にする方法を理解できたら... –

1
r = br.open('https://login.live.com/') 
r.get_data() 
# outputs: 
# ... 
# Windows Live ID requires JavaScript to sign in. This web browser either does not support JavaScript, or scripts are being blocked 
# ... 

代わりにSelenium/webdriverを使用することをお勧めします。

関連する問題