Я уверен, что это где-то ответ на вопрос, но я не смог найти для себя решения (если вы знаете дубликат, не стесняйтесь его пометить).
Моя цель - запросить RESTful API. Для этого мне нужно пройти аутентификацию. Единственный доступный для меня способ использования этого API - через веб-браузер.
Обычно я загружаю URL-адрес, который перенаправляет на другой URL-адрес. Во втором URL-адресе есть форма, в которой мне нужно ввести username
и password
для аутентификации. В настоящее время я ввожу учетные данные вручную через веб-браузер.
Мой вопрос: могу ли я сделать это программно, чтобы мне не приходилось вручную вводить учетные данные через веб-браузер?
Примечание: веб-страница не проверена.
Попытка 1
Я пробовал следующие команды, но ни одна из них не сработала:
curl -k -u username:password https://myurl:port
Ничего не вернуло.
Попытка 2
BASE_URL = 'https://myurl:port'
username = 'username'
password = 'password'
r = requests.get(BASE_URL, auth=(username, password), verify=False)
print(r.status_code, r.reason)
печатает <Response [200]>
, но не аутентифицируется. Это потому, что когда я пытаюсь запросить конечную точку API, она говорит, что я не авторизован. Когда я ввожу учетные данные вручную в браузере - тогда запрос конечной точки работает.
Попытка 3
Наконец, я подумал (но не сделал) мне нужен какой-то способ чтобы прочитать страницу входа и ввести учетные данные, получив элементы html и затем щелкнув логин (например, с использованием селена), но это кажется слишком грубым и подверженным ошибкам. Может быть, есть более элегантный способ.
Есть идеи, как я могу это сделать?