web-dev-qa-db-fra.com

Erreur - erreur urlopen [Errno 8] _ssl.c: 504: EOF s'est produit en violation du protocole

Mon objectif est d'extraire le html de tous les liens de la première page après avoir entré le terme de recherche google. Je travaille derrière un proxy, c'est donc mon approche.

1. J'ai d'abord utilisé la mécanisation pour saisir le terme de recherche dans le formulaire, j'ai défini correctement les proxys et les robots.

2.Après avoir extrait les liens, Ive a utilisé un ouvre-porte utilisant urllib2.ProxyHandler globalement, pour ouvrir les URL individuellement.

Cependant, cela me donne cette erreur. Pas en mesure de le comprendre.

urlopen error [Errno 8] _ssl.c:504: EOF occurred in violation of protocol
22
Manoj

Au lieu de copier et d'éditer les modules de bibliothèque Python, vous pouvez patcher ssl.wrap_socket () dans le module ssl en remplaçant le paramètre du mot clé ssl_version. Le code suivant peut être utilisé tel quel. ceci au début de votre programme avant de faire des demandes.

import ssl
from functools import wraps
def sslwrap(func):
    @wraps(func)
    def bar(*args, **kw):
        kw['ssl_version'] = ssl.PROTOCOL_TLSv1
        return func(*args, **kw)
    return bar

ssl.wrap_socket = sslwrap(ssl.wrap_socket)
21
chnrxn

C'est un bug connu, cependant quelques solutions sont mentionnées dans les commentaires de ce lien. Les voir, peut vous être utile, rl de bogue .

4
NIlesh Sharma