IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

[urllib2] Problème de configuration d'un proxy


Sujet :

Réseau/Web Python

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [urllib2] Problème de configuration d'un proxy
    C'est un problème avec la configuration d'un script python qui doit aller chercher des infos sur une page web en passant par un serveur proxy.
    En cherchant, j'ai trouvé le truc qui me semble le moins mauvais mais qui ne fonctionne toujours pas :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    import urllib2
     
    url_proxy = "url_vers_fichier_config_proxy.pac"
    proxy_support = urllib2.ProxyHandler({"http" : url_proxy})
    opener = urllib2.build_opener(proxy_support)
     
    req = urllib2.Request('http://www.python.org/')
    f = opener.open(req)
    print f.read()
    f.close()
    Lorsque j'exécute le script, j'ai :

    Traceback (most recent call last):
    File "F:\bourse.py", line 89, in <module>
    config_proxy(proxy)
    File "F:\bourse.py", line 27, in config_proxy
    f = opener.open(req)
    File "C:\Python25\lib\urllib2.py", line 381, in open
    response = self._open(req, data)
    File "C:\Python25\lib\urllib2.py", line 399, in _open
    '_open', req)
    File "C:\Python25\lib\urllib2.py", line 360, in _call_chain
    result = func(*args)
    File "C:\Python25\lib\urllib2.py", line 1107, in http_open
    return self.do_open(httplib.HTTPConnection, req)
    File "C:\Python25\lib\urllib2.py", line 1082, in do_open
    raise URLError(err)
    URLError: <urlopen error (11001, 'getaddrinfo failed')>

    Je n'arrive vraiment pas à résoudre ce problème, est-ce que quelqu'un aurait une solution? Merci d'avance!

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Ou alors existe-i-il d'autres solutions afin d'accéder au contenu d'une page web à travers une passerelle proxy : autres librairies, etc.?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 149
    Points : 219
    Points
    219
    Par défaut
    Le problème vient de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    url_vers_fichier_config_proxy.pac
    qui n'est pas valide. Vous devez examiner ce fichier pour trouver l'adresse exacte du proxy. Après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import urllib2
    host="proxy....."
    port="..."
    proxy_user = '....'
    proxy_password_orig='...'
    proxy_password = urllib2.quote(proxy_password_orig, "")
    proxy_url = 'http://' + proxy_user + ':' + proxy_password + '@' + host+ ':' + port
    proxy_support = urllib2.ProxyHandler({"http":proxy_url})
    opener = urllib2.build_opener(proxy_support,urllib2.HTTPHandler)
    urllib2.install_opener(opener)
    f = urllib2.urlopen('http://www.python.org/')
    print f.headers
    print f.read()

  4. #4
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Et bien de mon coter j'utilise urllib2 pour vérifier la mise a jour d'un programme et cela fonctionne.

    Voici mon code :

    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
    32
        def UrlRecup(self, Source, Dest):
            try:
                src = urllib2.urlopen(Source)
            except urllib2.HTTPError:
                pass
            else:
                dst = open(Dest, 'w');
                shutil.copyfileobj(src, dst)
     
        def LanceMaj(self, event = None):
            try : os.remove('/tmp/revision.txt')
            except : pass
            self.UrlRecup('http://adressedusite/ressources/scripts/monprog.tar.gz', 'monprog.tar.gz')
            # ETC...
     
        def initialize(self, event = None):
            proxy_support = urllib2.ProxyHandler({"http":"adresse.demonproxy.fr:3128"})
            opener = urllib2.build_opener(proxy_support)
            urllib2.install_opener(opener)
            try : self.UrlRecup('http://adressedusite/ressources/scripts/revision.txt', 'revision.txt')
            except : ligneRev = ''
            if os.path.isfile('/tmp/revision.txt'):
                RevRead = open('/tmp/revision.txt','rb')
                ligneRev = RevRead.readlines()[0][0:-2]
                RevRead.close()
                InstallRead = open(PathWasabi + 'wsbfm.py','rb')
                lignes = InstallRead.readlines()
                for items in lignes:
                    if items[:9] == '# Version':
                        LigneInstall = items[:15]
                InstallRead.close()
                # ETC...
    Si cela t'es utile...
    Merci d'utiliser le forum pour les questions techniques.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci, j'ai récupéré les infos manquantes (url, port, ect.) dans le fichier .pac pour els mettre directement dans le script et ça marche.
    Merci de l'aide!

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 217
    Points : 105
    Points
    105
    Par défaut
    Citation Envoyé par genemartin Voir le message
    Le problème vient de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    url_vers_fichier_config_proxy.pac
    qui n'est pas valide. Vous devez examiner ce fichier pour trouver l'adresse exacte du proxy. Après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import urllib2
    host="proxy....."
    port="..."
    proxy_user = '....'
    proxy_password_orig='...'
    proxy_password = urllib2.quote(proxy_password_orig, "")
    proxy_url = 'http://' + proxy_user + ':' + proxy_password + '@' + host+ ':' + port
    proxy_support = urllib2.ProxyHandler({"http":proxy_url})
    opener = urllib2.build_opener(proxy_support,urllib2.HTTPHandler)
    urllib2.install_opener(opener)
    f = urllib2.urlopen('http://www.python.org/')
    print f.headers
    print f.read()
    Merci pour ce post de qualité !
    C'est tellement appréciable de tomber sur quelqu'un qui répond sur quelque chose qu'il connait.

    --- Ce message n'est pas inutile, il a vocation à améliorer l'indexation de the thread. ---

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Urllib2] Problème de proxy
    Par xxkirastarothxx dans le forum Réseau/Web
    Réponses: 4
    Dernier message: 20/04/2009, 14h22
  2. [Ubuntu server] Problème de configuration proxy
    Par jbidou88 dans le forum Ubuntu
    Réponses: 0
    Dernier message: 13/12/2007, 08h36
  3. [Tomcat 5 + Eclipse] Problème de configuration
    Par seb55555 dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 26/10/2004, 15h20
  4. [EJB] Problème avec configuration jonas
    Par SteelBox dans le forum JBuilder
    Réponses: 30
    Dernier message: 11/03/2004, 21h30
  5. Problème de configuration
    Par lsdInside dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 09/10/2003, 12h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo