2 votes

Comment NE PAS utiliser un proxy avec Python Mechanize

Actuellement, j'utilise Python + Mechanize pour récupérer des pages d'un serveur local. Comme vous pouvez le voir, le code utilise "localhost" comme proxy. Le proxy est une instance du proxy de débogage Fiddler2. Cela fonctionne exactement comme prévu. Cela indique que ma machine peut atteindre le test_box.

import time
import mechanize

url = r'http://test_box.test_domain.com:8000/helloWorldTest.html'
browser = mechanize.Browser();
browser.set_proxies({"http": "127.0.0.1:8888"})
browser.add_password(url, "test", "test1234")

start_timer = time.time()

resp = browser.open(url)
resp.read()

latency = time.time() - start_timer

Cependant, lorsque je retire l'instruction browser.set_proxies, cela cesse de fonctionner. J'obtiens une erreur <"urlopen error [Errno 10061] Aucune connexion n'a pu être établie car la machine cible l'a refusée activement">. Le point est que je peux accéder au test_box depuis ma machine avec n'importe quel navigateur. Cela indique également que le test_box est accessible depuis ma machine.

Je soupçonne que cela a quelque chose à voir avec Mechanize qui essaie de deviner les paramètres de proxy appropriés. C'est-à-dire que mes navigateurs sont configurés pour aller à un proxy web pour n'importe quel domaine sauf test_domain.com. Je suppose donc que Mechanize essaie d'utiliser le proxy web alors qu'il ne devrait pas l'utiliser en réalité.

Comment puis-je dire à Mechanize de NE PAS deviner les paramètres de proxy et plutôt le forcer à essayer de se connecter directement au test_box?

3voto

Udo Klein Points 3038

Argh, j'ai finalement trouvé moi-même. La docstring dit :

"Pour éviter tout usage de proxies, passez un dictionnaire de proxies vide."

Cela a résolu le problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X