Почему происходит «Сайт XXX выполнил переадресацию слишком много раз» и как исправить ошибку «the STRING opcode argument must be quote»?



@ganstar565

При попытке авторизоваться на сайти с помощью куки используя библиотеку selenium у меня возникло 2 проблемы.

1)Проблема очень распространенная, однако мне так и не удалось её решить(все способы решения у меня не работали) — при попытке взять куки из корня браузера и загрузить их через pickle и selenium вылазила следующая ошибка:

_pickle.UnpicklingError: the STRING opcode argument must be quoted

перепробовал кучу различных способов — ничего так и не помогло.

2)Забрав куки уже с помощью тех же pickle и selenium и попробовав загрузить их на сайт тем же образом сайт выдал следующее:

Сайт xxx выполнил переадресацию слишком много раз.

.
Код:

spoiler

for cookies in pickle.load(open("Сookies", "rb")):
            self.driver.add_cookie(cookies)
            
        print("загрузка завершена")
        sleep(20)
        self.driver.refresh()
        print("готово")
        sleep(10)

Кто знает как решить эти проблемы, помогите пожалуйста.


Решения вопроса 1



@Vindicar

ganstar565, внезапно, зависит от браузера. Например, гугл «firefox cookie storage format» даёт такой ответ:

Cookies in Firefox are stored in an SQLite format database found in the file cookies.sqlite in the currently-active user profile directory (exact path is system-dependent).

Иными словами, смотришь папку %APPDATA%\Mozilla\Firefox\Profiles, в ней каждый подкаталог — профиль браузера, часто один, но может быть несколько. Внутри подкаталога лежит файл cookies.sqlite.
Путь можно сконструировать с помощью os.path.expandvars() (и модуля os.path в целом), файл открыть стандартным модулем sqlite3, а дальше смотри что внутри таблицы moz_cookies.
Для остальных браузеров по аналогии — гугл, потом эксперименты.


Ответы на вопрос 0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *