Python で mechanize を使い始めたばかりですが、すでにいくつかの問題が発生しています。私は StackOverflow と Google を見回しましたが、ドキュメントは素晴らしく、簡単に機能させることができるはずだと人々が言っているのを見てきましたが、私はずっとそのドキュメントを探す方法を知らないと思います。見つけられるのは、私がやろうとしている特定のことを行う方法を実際には教えてくれないコード例です。誰かがそのようなドキュメントを教えてくれたら、喜んで自分で読んで問題を解決します。
実際の問題として、ユーザー名とパスワードの情報をフォームで送信して Web サイトにログインしようとしています。情報が正しい場合、通常はリダイレクトされますが、機械化では機能しません。
サブミットを呼び出した後にページの html コンテンツをすぐに印刷すると、認証が有効であることを示す変数がページに表示されるため、これは取得できない部分です。パスワードを間違ったものに変更すると、サイトを通常どおり閲覧している場合と同様に、html に「資格情報が無効です」というメッセージが表示されます。
これが私がやっている方法のコードサンプルです。例で見つけたものを適用しようとしているだけなので、完全に間違っている可能性があることに注意してください。
import mechanize
import cookielib
# Start Browser
br = mechanize.Browser()
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
br.set_handle_equiv(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
br.open('http://www.complexejuliequilles.com/')
for l in br.links(url_regex='secure'):
br.follow_link(l)
br.select_form('form1')
br.form['fldUsername'] = 'myUsername'
br.form['fldPassword'] = 'myPassword'
br.submit()
この特定の例では、http://www.complexejulieequilles.comを開き、下部にある「管理」というテキストのあるリンクをたどり、フォームに資格情報を入力して送信します。通常、最初に表示したページにリダイレクトされますが、管理者のみが使用できるボタンがさらに表示されます。これらのリンクの 1 つをクリックして別のフォームに入力し、メール アドレスや名前などを持っているユーザーのリストを追加したいと考えています。
私が見逃している簡単なものはありますか?基本は理解できたと思いますが、リダイレクトの何が問題なのかを見つけるのに十分なほどライブラリを知りません。