Вход на сайт через Python

Я использую Spyder для кодирования моего проекта в Python 3.6.

Я загрузил robobrowser, чтобы помочь мне войти на веб-страницу, так как я новичок в веб-очистке и HTML.

Я понимаю процесс, но у меня возникла проблема при доступе к элементам формы.

from robobrowser import RoboBrowser

browser = RoboBrowser(history=True)
url1 = "example_url"

username = "example_user"
password = "example_pass"

browser.open(url1)

form = browser.get_forms()
form['username'] = username

Кажется, есть только одна форма, и когда я попробовал пример преобразования ее в строку, оказалось, что она находит форму. По какой-то причине он не отображается как переменная в рабочей области spyder, если я не преобразую его в строку.

Я посмотрел на HTML и имя, а также идентификатор записи имени пользователя действительно "имя пользователя". Я получаю ошибку

form['username'] = username
       TypeError: list indices must be integers or slices, not str

Мне не нравится, когда я пытаюсь получить доступ к индексу в форме по имени пользователя, однако это синтаксис во всех примерах этого модуля, которые я видел. (Первый ответ на эту ссылку - это то, что я использую в качестве шаблона https://www.quora.com/What-is-the-best-way-to-log-in-to-a-website-using-Python)

1 ответ

Вы можете попробовать использовать логин и пароль прямо в URL. Вот схема:

http://USERNAME:PASSWORD@example.com/
Другие вопросы по тегам