Bonjour à tous,

Depuis un moment je rencontre des problèmes lorsque je teste des scripts venant de tutoriaux lorsque je souhaite exploiter des API fournit par différents sites internet pour récupérer des infos au format json.

Le problème est toujours le même :

error: [Errno 10054] Une connexion existante a dû être fermée par l’hôte distant
Voici un exemple de script que j'ai essayé et qui me renvoie le même message d'erreur qu'au dessus :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
try:
    # For Python 3.0 and later
    from urllib.request import urlopen
except ImportError:
    # Fall back to Python 2's urllib2
    from urllib2 import urlopen
 
import json
 
 
def get_jsonparsed_data(url):
    """
    Receive the content of ``url``, parse it as JSON and return the object.
 
    Parameters
    ----------
    url : str
 
    Returns
    -------
    dict
    """
    response = urlopen(url)
    data = response.read().decode("utf-8")
    return json.loads(data)
 
 
url = ("http://maps.googleapis.com/maps/api/geocode/json?"
       "address=googleplex&sensor=false")
print(get_jsonparsed_data(url))
Erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Traceback (most recent call last):
  File "C:\Users\dev\Desktop\Development\Python\urllib_test\Google_script.py", line 30, in <module>
    print(get_jsonparsed_data(url))
  File "C:\Users\dev\Desktop\Development\Python\urllib_test\Google_script.py", line 23, in get_jsonparsed_data
    response = urlopen(url)
  File "C:\Program Files (x86)\python27\lib\urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "C:\Program Files (x86)\python27\lib\urllib2.py", line 400, in open
    response = self._open(req, data)
  File "C:\Program Files (x86)\python27\lib\urllib2.py", line 418, in _open
    '_open', req)
  File "C:\Program Files (x86)\python27\lib\urllib2.py", line 378, in _call_chain
    result = func(*args)
  File "C:\Program Files (x86)\python27\lib\urllib2.py", line 1207, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "C:\Program Files (x86)\python27\lib\urllib2.py", line 1180, in do_open
    r = h.getresponse(buffering=True)
  File "C:\Program Files (x86)\python27\lib\httplib.py", line 1030, in getresponse
    response.begin()
  File "C:\Program Files (x86)\python27\lib\httplib.py", line 407, in begin
    version, status, reason = self._read_status()
  File "C:\Program Files (x86)\python27\lib\httplib.py", line 365, in _read_status
    line = self.fp.readline()
  File "C:\Program Files (x86)\python27\lib\socket.py", line 447, in readline
    data = self._sock.recv(self._rbufsize)
error: [Errno 10054] Une connexion existante a dû être fermée par l’hôte distant
Pour me connecter à internet mon navigateur internet passe par un proxy (script en .pac).

Est ce que depuis python je dois également passer par ce proxy ? Est ce que mon problème peut provenir du proxy ?

Merci d'avance pour votre aide.