0

我正在开发一个需要在 python 中使用 Mechanize 登录的项目。

它无法通过其名称访问表单中的登录名。我对 HTML 不太熟悉,但它似乎与引用登录输入字段的标签有关。

对于那些不熟悉机械化的人,你几乎可以忽略它。只要知道,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'
4

1 回答 1

0

页面上还有其他表单还是该粘贴箱上的整个页面?您可以随时尝试以下代码,以确保获得所需的表格。

for form in br.forms():
        if form.attrs['id'] == 'fm1':
            br.form = form
于 2013-11-05T03:12:47.707 回答