Ошибка SSL: неправильное рукопожатие (запросы Python)

Я знаю, что подобные вопросы задавались и раньше, но я прочитал их все и до сих пор не могу найти решение своей проблемы.

Я в основном работаю за корпоративным прокси, поэтому, когда я, например, делаю запрос на получение в Google с чем-то вроде этого:

import requests 
requests.get('https://www.google.es')

Я сразу получаю сообщение об ошибке, указывающее на сбой при проверке сертификата. После долгого чтения я нашел этот пост, в котором вы можете получить приятное объяснение что происходит.

Вот некоторые решения, которые я пробовал: 1.https://stackoverflow.com/a/42540637/8380638 2.https://stackoverflow.com/a/48636689/8380638

Но все равно я не мог заставить это работать.

Моя основная цель - использовать Google Translate API из модуля python google.cloud, который использует запросы к нему. Так что было бы неплохо найти какое-нибудь исправление, которое идет дальше от добавления параметра в функцию request.get ().

Можете ли вы свернуть веб-страницу? Из любопытства, какую ОС вы используете? Если это MacOS, то cd /usr/local/include ; ln -s ../opt/openssl/include/openssl помог мне, когда я получал ошибки SSL.

Richard G 22.05.2018 18:27

Хотя вы ссылаетесь на несколько вопросов и утверждаете, что пробовали что-то на их основе, неясно, что именно вы пробовали. Если ваш код не работает из-за проверки сертификата и причиной этого является корпоративный прокси-сервер, перехватывающий SSL, вам необходимо добавить CA этого прокси как доверенный с помощью параметра verify. Если это не сработает, возможно, вы не используете правильный прокси-центр сертификации.

Steffen Ullrich 22.05.2018 18:44

Да, я думал об этом, но мой браузер может работать, как только я добавлю к нему CA. Так что с этим проблем нет. Я также разговаривал с командой, отвечающей за прокси, и они пытались отключить перехват SSL для этого случая, но появляется та же ошибка. Должно быть что-то действительно маленькое, чего мне не хватает, любая идея будет приветствоваться

m33n 23.05.2018 14:56
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
3
2 350
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете получить API Google Translate без использования библиотеки запросов. Просто установите библиотеку google-cloud-translate и настройте необходимую аутентификацию в своей учетной записи Google Cloud Platform, как описано в документация. После завершения вы можете напрямую импортировать Translate API, используя следующую строку:

from google.cloud import translate
Ответ принят как подходящий

Я наконец нашел решение для этого, но я забыл опубликовать его.

Вы можете использовать это, чтобы найти путь, по которому хранятся CA библиотеки запросов, и добавить свой собственный в конец файла.

import requests as r     
print(r.certs.where())

Другие вопросы по теме