Невозможно войти на сайт через RoboBrowser Python - PullRequest
0 голосов
/ 25 декабря 2018

Я пытался войти на сайт через RoboBrowser, но я сталкиваюсь с ошибкой ниже.

import config
from robobrowser import RoboBrowser
br = RoboBrowser()
br.open('https://stackoverflow.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».Я хочу вывести вывод и увидеть, «Hello User» отображается или нет через скрипт Python

Ответы [ 2 ]

0 голосов
/ 25 декабря 2018

Я думаю, что вы пытаетесь войти в форму для подписки.Перейдите на страницу входа и затем войдите.

import config
from robobrowser import RoboBrowser

br = RoboBrowser()
br.open('https://stackoverflow.com/users/login')

form = br.get_form(id="login-form")
form['email']=config.username
form['password']=config.password
br.submit_form(form)
0 голосов
/ 25 декабря 2018

Эта ошибка, на удивление, может произойти, если вы устанавливаете поле формы, которое на самом деле не является частью формы.Ответ Томаша сводится к тому, что было не так, но пара дополнительных замечаний:

...