Python で Mechanize を使用してログインが必要なプロジェクトに取り組んでいます。
名前でフォームのログインにアクセスできません。私は HTML にあまり詳しくありませんが、ログイン入力フィールドを参照しているラベルと関係があるようです。
Mechanize に慣れていない人は、ほとんど無視できます。br.form['xzy'] = '123'
現在選択されているフォームに関係なく、「xyz」という名前のフィールドが「123」に設定されることを知っておいてください。要するに、問題はユーザー名入力フィールドの正しい名前または回避策のいずれかを見つけることです。
これは、Pythonの機械化コードがどのように見えるかです...
br.select_form(nr=0)
br.form['username'] = 'dave'
br.form['password'] = 'cats123'
session = br.submit()
これは、私が取り組んでいるページの HTML で入力がどのように見えるかです...
<label for="username" class="fl-label"><span class="accesskey">A</span>ccount:</label>
<input id="username" name="username" class="required" tabindex="1" accesskey="n" type="text" value="" size="32" autocomplete="false"/>
そして、ここに私が遭遇しているエラーがあります...
File "vcl.py", line 12, in maristLogin
br.form['username'] = 'steh'
mechanize._form.ControlNotFoundError: no control matching name 'username'