嗯,我正尝试使用Python和机械化登录到一个站点。使用机械化提交表单(Python)
我已经得到了网站开通:
site = br.open("http://example.com/login.php")
而且我已经得到的表单列表(与br.forms)。
<GET http://example.com/search.php application/x-www-form-urlencoded
<HiddenControl(search=1) (readonly)>
...
<POST http://example.com/login.php application/x-www-form-urlencoded
<TextControl(username=)>
<PasswordControl(password=)>
<CheckboxControl(stay=[1])>
<SubmitControl(<None>=Log in) (readonly)>>
我一直在试图提交用户名和密码字段。
我试图做这样的:
br.select_form(nr=0)
br.form["username"] = 'usernamehere'
br.form["password"] = 'passwordhere'
br.submit()
然后我意识到,我试图填写表格不是第一个在页面上,但改变0不与任何帮助。我应该如何选择这样的页面上的表单?
但是!这不是唯一的问题。
当我运行它,我得到这个错误:
Traceback (most recent call last):
File "C:\Python26\login.py", line 34, in <module>
br.form["username"] = 'usernamehere'
...
ControlNotFoundError: no control matching name 'username'
我该如何解决这个问题? D:还是我做错了?如果是后者,我该如何去做呢?
br.select_form(name =“username”)抛出一个错误:FormNotFoundError:没有匹配名称'username'的表单 - 与以前一样,但是这次是我刚刚添加的行。 – Matthew 2011-12-20 05:25:54
你确定你有正确的名字吗?试试br.forms()中的表单:print form – tovmeod 2011-12-22 01:27:40
Positive。我检查了br.forms()和原始html。 – Matthew 2011-12-27 08:12:03