Мне нужно загрузить огромное количество файлов Excel (по оценкам: 500–1000) с продавцаcentral.amazon.de. Загрузка вручную невозможна, поскольку для каждой загрузки требуется несколько щелчков мышью, пока не появится всплывающее окно.
Поскольку amazon не может предоставить мне простой xml со своей структурой, я решил автоматизировать это самостоятельно. Первым, что пришло на ум, были Selenium и Firefox.
Проблема:
Требуется вход в систему продавца central, а также двухфакторная аутентификация (2FA). Поэтому, если я войду один раз, я смогу открыть другую вкладку, войти в sellercentral.amazon.de и сразу же войти в систему.
Я даже могу открыть другой экземпляр браузера и сразу войти в систему. Они могут использовать сессионные куки. Целевой URL для "scrape": https://sellercentral.amazon.de/listing/download?ref=ag_dnldinv_apvu_newapvu.
Но когда я открываю URL из моего python-скрипта с помощью selenium webdrive, запускается новый экземпляр браузера, в который я не захожу. Хотя есть экземпляры firefox, запущенные одновременно, в который я вошел в систему. Так что я думаю, что экземпляры, запущенные селеном, несколько отличаются.
Что я пробовал:
Я попытался установить временную задержку после первого .get () (чтобы открыть сайт), затем я войду в систему вручную, и после этого отредактирую .get (), что заставит скрипт работать вечно.
from selenium import webdriver
import time
browser = webdriver.Firefox()
# Wait for website to fire onload event
browser.get("https://sellercentral.amazon.de/listing/download?ref=ag_dnldinv_apvu_newapvu")
time.sleep(30000)
browser.get("https://sellercentral.amazon.de/listing/download?ref=ag_dnldinv_apvu_newapvu")
elements = browser.find_elements_by_tag_name("browse-node-component")
print(str(elements))
Что я ищу?
Нужно решение использовать двухфакторный токен аутентификации от Google authenticator.
Я хочу, чтобы селен открывался как вкладка в существующем экземпляре браузера Firefox, где я уже вошел в систему заранее. Поэтому не требуется вход в систему (должен быть), и можно выполнить «очистку» и загрузку.
Если прямого пути нет, может, кто-нибудь придумает обходной путь?
Я знаю, что селен не может загружать файлы сам, так как всплывающие окна больше не являются частью браузера. Я исправлю это, когда доберусь туда.
Важные примечания:
Firefox не дано! Я с радостью приму решение для любого браузера.