#python #url #browser
Вопрос:
Я пытаюсь автоматизировать получение токена обновления API eBay с помощью Python. Что мне нужно для этого, так это:
- Откройте определенный URL-адрес в браузере по умолчанию
- Подождите, пока пользователь войдет в систему
- Прочитайте новый URL-адрес из адресной строки браузера
Код, который я только что получил, будет получать только HTML-код из URL-адреса, а затем фактический URL-адрес из браузера, но, очевидно, не открывает страницу в браузере, чтобы позволить пользователю войти в систему. Я только что использовал страницу входа в систему Google, так как не могу указать URL страницы, которую я использую, поскольку она содержит очень конфиденциальные данные для входа.
from urllib import request
url = "https://accounts.google.com/ServiceLogin?hl=enamp;passive=trueamp;continue=https://www.google.co.uk/amp;ec=GAZAmgQ"
response = request.urlopen(url)
new_url = response.geturl()
print(new_url)
Комментарии:
1. Общий способ добиться этого-открыть локальный веб-сервер с python, отправить его URL-адрес в качестве цели перенаправления для любого входа, который вы хотите, позволить браузеру пользователю выполнить свою задачу, закончив перенаправлением на ваш веб-сервер, а затем отреагировать соответствующим образом. Конечно, это зависит от того, примет ли целевой веб-сайт такое перенаправление.
2. Читайте о потоке Oauth
Ответ №1:
Ладно, похоже, это делает то, что я хочу. Драйвер selenium для Chrome должен быть в системном пути, чтобы он работал.
from selenium import webdriver
from time import sleep
url = "https://accounts.google.com/ServiceLogin?hl=enamp;passive=trueamp;continue=https://www.google.co.uk/amp;ec=GAZAmgQ"
driver = webdriver.Chrome()
driver.get(url)
while True:
get_url = driver.current_url
if "Login" not in get_url:
break
sleep(1)
print(get_url)
driver.close()
Тем не менее, Google говорит, что браузер небезопасен, когда я его тестирую, но он может работать с eBay — я попробую, когда мне понадобится, и сообщу об этом…