Salve, mi sono appena iscritto e non sono un programmatore prof. Ho questo problema che a me sembra un bug.. in uno script utilizzo mechanize, che a sua volta si appoggia a urllib2, per navigare in un sito previa autenticazione e scaricare dei file pdf. Questo script ha diversi anni .. tipo 3 o 4 e ha *sempre* funzionato. Ultimamente ha smesso di funzionare a mio avviso perché il sito ha cambiato sistema di autenticazione oppure perché aggiornando il proxy è stato introdotto un bug. Quindi fra il mio script ed internet c'è un proxy che dall'interno è dansguardian(lan:8080)+squid(local:3128). Lo script senza proxy funziona perfettamente e per varie ragioni non posso intervenire sulle regole del firewall. Ovviamente se disabilito il proxy sullo script il firewall non mi fa uscire. È possibile che il bug riguardi il proxy ma intanto chiedo qui. Dunque la seguente è parte dello script:
a = mechanize.Browser() a.set_proxies({"http":"192.168.1.250:8080","https":"192.168.1.250:8080"}) a.addheaders = [('User-Agent', 'Firefox')] a.open(url) a.select_form(name="RepPre") a["userid"] = login a["userpw"] = passwd r = a.submit() e il seguente è l'errore: Traceback (most recent call last): File "/usr/local/bin/get-0.1.py", line 67, in ? r = a.submit() File "build/bdist.linux-i686/egg/mechanize/_mechanize.py", line 547, in submit File "build/bdist.linux-i686/egg/mechanize/_mechanize.py", line 209, in open File "build/bdist.linux-i686/egg/mechanize/_mechanize.py", line 236, in _mech_open File "build/bdist.linux-i686/egg/mechanize/_opener.py", line 191, in open File "/usr/lib/python2.4/urllib2.py", line 376, in _open '_open', req) File "/usr/lib/python2.4/urllib2.py", line 337, in _call_chain result = func(*args) File "build/bdist.linux-i686/egg/mechanize/_http.py", line 756, in https_open File "build/bdist.linux-i686/egg/mechanize/_http.py", line 706, in do_open urllib2.URLError: <urlopen error (8, 'EOF occurred in violation of protocol')> Il sito è in chiaro ma l'autenticazione passa in https. il set_proxies l'ho introdotto recentemente in seguito all'errore.. prima semplicemente esportavo la variabile http_proxy da uno script bash e quindi lanciavo lo script python. Versioni python 2.4.3 >>> print mechanize.__version__ (0, 1, 11, None, None) >>> print urllib2.__version__ 2.4 Ho già provato a postare sulla ml di mechanize. Ma non mi hanno saputo aiutare. Grazie per ogni suggerimento. ciao luigi -- Linux Server, Microsoft Windows 2003/2008 Server, Exchange 2007 http://predellino.blogspot.com/ _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python