好吧,我正在尝试使用
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="order")
你在这做什么:
br.form["username"] = 'usernamehere'
正在尝试为所选表单下的控件设置一个值,所以当他找不到它时,它会抛出你看到的异常.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。