无法通过 RoboBrowser 登录站点 Python
Unable to login into site through RoboBrowser Python
我尝试通过 RoboBrowser 登录网站,但遇到以下错误。
import config
from robobrowser import RoboBrowser
br = RoboBrowser()
br.open('https://whosebug.com')
form = br.get_form(id="login-form")
form['Email address']=config.username
form['Password']=config.password
br.submit_form(form)
错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\test\AppData\Local\Programs\Python\Python37\lib\site-packages\robobrowser\forms\form.py", line 216, in __setitem__
self.fields[key].value = value
File "C:\Users\test\AppData\Local\Programs\Python\Python37\lib\site-packages\werkzeug\datastructures.py", line 784, in __getitem__
raise exceptions.BadRequestKeyError(key)
werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.
通过任何其他模块,我们都可以在下一个屏幕中登录站点并搜索数据。例如,如果我登录到站点和下一页,它将显示为 "Hello User"。
我想带上输出并通过 python 脚本
查看是否显示 "Hello User"
令人惊讶的是,如果您设置的表单域实际上不是表单的一部分,则会发生此错误。 Tomasz 的回答直指问题所在,但还有一些额外的注意事项:
robobrowser
不受支持,您应该查看维护得更好的库,例如 MechanicalSoup
or mechanize
- StackExchange has an API
我认为您正在尝试登录点赞表。移动到登录页面,然后登录。
import config
from robobrowser import RoboBrowser
br = RoboBrowser()
br.open('https://whosebug.com/users/login')
form = br.get_form(id="login-form")
form['email']=config.username
form['password']=config.password
br.submit_form(form)
我尝试通过 RoboBrowser 登录网站,但遇到以下错误。
import config
from robobrowser import RoboBrowser
br = RoboBrowser()
br.open('https://whosebug.com')
form = br.get_form(id="login-form")
form['Email address']=config.username
form['Password']=config.password
br.submit_form(form)
错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\test\AppData\Local\Programs\Python\Python37\lib\site-packages\robobrowser\forms\form.py", line 216, in __setitem__
self.fields[key].value = value
File "C:\Users\test\AppData\Local\Programs\Python\Python37\lib\site-packages\werkzeug\datastructures.py", line 784, in __getitem__
raise exceptions.BadRequestKeyError(key)
werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.
通过任何其他模块,我们都可以在下一个屏幕中登录站点并搜索数据。例如,如果我登录到站点和下一页,它将显示为 "Hello User"。 我想带上输出并通过 python 脚本
查看是否显示 "Hello User"令人惊讶的是,如果您设置的表单域实际上不是表单的一部分,则会发生此错误。 Tomasz 的回答直指问题所在,但还有一些额外的注意事项:
robobrowser
不受支持,您应该查看维护得更好的库,例如MechanicalSoup
ormechanize
- StackExchange has an API
我认为您正在尝试登录点赞表。移动到登录页面,然后登录。
import config
from robobrowser import RoboBrowser
br = RoboBrowser()
br.open('https://whosebug.com/users/login')
form = br.get_form(id="login-form")
form['email']=config.username
form['password']=config.password
br.submit_form(form)