@UltraRazrab228

Почему seleniumwire выдаёт ошибку OpenSSL.crypto.Error: [('PEM routines', '', 'no start line')]?

Я просто создаю driver, но мне выдаёт ошибку OpenSSL.crypto.Error: [('PEM routines', '', 'no start line')]
Вот код:
from seleniumwire import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())

Почему так?
  • Вопрос задан
  • 206 просмотров
Пригласить эксперта
Ответы на вопрос 1
Lakika
@Lakika
Sicario
Ошибка "OpenSSL.crypto.Error: [('PEM routines', '', 'no start line')]" обычно возникает, когда OpenSSL пытается загрузить или обработать файл в формате PEM (Privacy Enhanced Mail), который является одним из форматов для сертификатов и ключей, и не находит ожидаемого начала файла.

Это может случиться по нескольким причинам:

Файл сертификата отсутствует или не может быть прочитан из-за проблем с правами доступа.
Файл сертификата поврежден или не в формате PEM.
Путь к файлу сертификата неверен или не корректен.
В контексте seleniumwire, это может быть связано с настройкой прокси-сервера, который используется seleniumwire для перехвата HTTP(S) запросов.

Seleniumwire создаёт самоподписанные сертификаты для HTTPS-сайтов на лету, но для этого ему нужен корневой сертификат. Если по какой-то причине этот корневой сертификат не создаётся, не сохраняется или не читается корректно, это может вызвать ошибку OpenSSL.

Без дополнительной информации трудно сказать точную причину ошибки в вашем случае. Но вот несколько вещей, которые вы можете попробовать:

Убедитесь, что у вас установлена последняя версия seleniumwire.
Убедитесь, что у вас есть необходимые разрешения на создание и чтение файлов в директории, где работает ваш скрипт.
Попробуйте явно задать директорию для хранения сертификатов seleniumwire, используя опцию seleniumwire_options при создании драйвера, например:
from seleniumwire import webdriver
from webdriver_manager.chrome import ChromeDriverManager

seleniumwire_options = {
    'ca_bundle_cert': '/path/to/your/directory'
}

driver = webdriver.Chrome(ChromeDriverManager().install(), seleniumwire_options=seleniumwire_options)

В этом примере /path/to/your/directory - это путь к директории, где seleniumwire будет хранить сертификаты. Убедитесь, что указанный путь существует и доступен для записи.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы