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

Как решить проблемы с использованием куки при авторизации на сайте с помощью Selenium и библиотеки pickle?

1) При попытке загрузки куки через pickle и Selenium выдается ошибка "_pickle.UnpicklingError: the STRING opcode argument must be quoted". Я пробовал использовать разные методы решения, но ничего не сработало. Как можно решить эту проблему?

2) После успешной загрузки куки с помощью pickle и Selenium и попытки загрузки их на сайт, появляется следующая ошибка: "Сайт xxx выполнил переадресацию слишком много раз..". Вот мой код:

`for cookies in pickle.load(open("Сookies", "rb")):
    self.driver.add_cookie(cookies)`

`print("загрузка завершена")
sleep(20)
self.driver.refresh()
print("готово")
sleep(10)`

Как можно решить эту проблему? Буду благодарен за помощь.
  • 31 октября 2023 г. 20:20
Ответы на вопрос 2
Ошибка "Сайт XXX выполнил переадресацию слишком много раз" возникает, когда сайт отправляет слишком много перенаправлений, что может быть вызвано неправильной конфигурацией сервера или проблемами с кодом на сайте. Чтобы исправить эту ошибку, вы можете попробовать следующие решения:

1) Убедитесь, что URL, который вы пытаетесь открыть, указан правильно и не вызывает бесконечных перенаправлений.

2) Очистите куки и кэш браузера, затем попробуйте повторить операцию.

3) Проверьте настройки прокси-сервера, если вы используете прокси. Некорректные настройки прокси могут вызывать многочисленные перенаправления.

4) Обновите браузер или попробуйте использовать другой браузер для доступа к сайту.

Ошибку "the STRING opcode argument must be quoted" можно исправить, обернув строковые аргументы в кавычки при использовании методов, связанных с pickle. Например:

`pickle.dump(cookies, open("Сookies", "wb"))`

В отношении использования куки с Selenium и библиотекой pickle, чтобы решить проблему с загрузкой куки, вы можете попробовать следующее:

1) При сохранении куки с помощью pickle, убедитесь, что вы правильно сериализуете и десериализуете куки объекты. Например:

`pickle.dump(cookies, open("Сookies", "wb"))`
`loaded_cookies = pickle.load(open("Сookies", "rb"))`

2) При загрузке куки в Selenium, используйте цикл для добавления каждой куки:

```
for cookie in loaded_cookies:
    self.driver.add_cookie(cookie)
```

3) После добавления куки обновите страницу и проверьте, была ли авторизация успешной. Вы можете использовать метод `self.driver.refresh()` для обновления страницы.

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