Proxy avec urllib2
Je ouvrir les url avec:
site = urllib2.urlopen('http://google.com')
Et ce que je veux faire est de se connecter de la même façon avec un proxy
J'ai eu quelque part me disant:
site = urllib2.urlopen('http://google.com', proxies={'http':'127.0.0.1'})
mais cela ne fonctionne pas non plus.
Je sais urllib2 a quelque chose comme un proxy handler, mais je ne me souviens pas de cette fonction.
Vous devez vous connecter pour publier un commentaire.
uninstall
méthode dansurllib2
, mais on peut faire en une fois les paramètres de proxy; au lieu deinstalling
le premier match, nous avons créer unrequest
objet, et d'utiliser un ouvre-boîte pouropen
il.HTTP_PROXY
et ensuite, vérifiez dans votre code, si elle est définie à l'aide deos.environ["HTTP_PROXY"]
.ProxyHandler
n'est pas utilisé: j'ai eu besoin d'utiliser cette solution pour obtenir ce travail parce que j'ai créé un supplément decontext
pour la vérification SSL: stackoverflow.com/a/24766345/520162Vous devez installer un ProxyHandler
Vous pouvez définir des procurations à l'aide de variables d'environnement.
urllib2
va ajouter proxy gestionnaires automatiquement de cette façon. Vous devez définir les procurations pour les différents protocoles séparément sinon ils ne pourront pas (en ne passant pas par le proxy), voir ci-dessous.Par exemple:
Au lieu
Pour utiliser la valeur par défaut du système des procurations (par exemple, de la http_support variable d'environnement), les travaux suivants pour la requête en cours (sans l'installer dans urllib2 dans le monde):
En Plus de la accepté de répondre:
Mon scipt m'a donné une erreur
Solution était d'ajouter http://devant le proxy chaîne:
On peut aussi utiliser demandes si nous voulons accéder à une page web en utilisant des proxys. Python 3 code:
Plus d'une des procurations peuvent également être ajoutés.
En outre définir le proxy pour la ligne de commande de session
Ouvrez une ligne de commande où vous pouvez exécuter votre script
exécuter votre script dans le terminal.