requests.exceptions.SSLError: _ssl.c: 504: EOF ocurrió en violación del protocolo

He intentado todo en este Q&A para resolverlo pero todavía recibo ese error.

Mi último bash se basa en el comentario de Lukasa y mi código se ve así:

import requests from requests.adapters import HTTPAdapter from requests.packages.urllib3.poolmanager import PoolManager import ssl class MyAdapter(HTTPAdapter): def init_poolmanager(self, connections, maxsize, block=False): self.poolmanager = PoolManager(num_pools=connections, maxsize=maxsize, block=block, ssl_version=ssl.PROTOCOL_TLSv1) proxy = 'https://78.130.136.2:8080' g = 'https://www.google.com/' s = requests.Session() s.mount('https://', MyAdapter()) r = s.get(g, proxies={'https': proxy} ) print r.text.encode('utf-8') 

El error completo que recibo es:

 Traceback (most recent call last): File "/Users/Dionysis_Lorentzos/Projects/getter/proxy.py", line 30, in  r = s.get(g, proxies={'https': proxy}, verify=True ) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/sessions.py", line 347, in get return self.request('GET', url, **kwargs) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/sessions.py", line 335, in request resp = self.send(prep, **send_kwargs) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/sessions.py", line 438, in send r = adapter.send(request, **kwargs) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests/adapters.py", line 331, in send raise SSLError(e) requests.exceptions.SSLError: [Errno 8] _ssl.c:504: EOF occurred in violation of protocol 

Entonces, ¿cómo puedo obtener los datos del sitio con el proxy a través de https ? (el proxy funciona bien en mi Firefox)

En todas las versiones de Solicitudes en PyPI no hay soporte para solicitar sitios HTTPS a través de un proxy, ya que no hay soporte para el verbo CONNECT . Nuestra twig de prelanzamiento para 2.0 tiene este soporte y funciona en todos los servidores proxy que he probado. Si desea verificarlo y probarlo con esto, tampoco necesitará el adaptador personalizado.

De lo contrario, tendrás que esperar hasta que salgamos 2.0.

Tienes que usar http como el protocolo para tu proxy (aunque estás usando https sobre él)

 proxy = 'http://78.130.136.2:8080' 

Pero como @ sigmavirus24 dijo que la versión de lanzamiento actual de las solicitudes tiene algunos problemas con los proxies http. Con esta configuración podrá usar el proxy (no todos los proxies, pero este proxy en particular funciona).

Tenga cuidado: con la versión actual, los datos NO se cifran entre usted y su proxy.

Repita: ¡El proxy y todo lo que hay entre él y usted puede leer los datos!