Вход на сайт через 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/