dalla mia esperienza con i proxy... di solito basta un realm sbagliato per avere una 407 prova a sniffare la risposta per capire che realm usare
ciao S 2012/9/29 Pietro Battiston <m...@pietrobattiston.it> > Il giorno sab, 29/09/2012 alle 16.32 +0200, Marco Giusti ha scritto: > > On Sat, Sep 29, 2012 at 12:21:36PM +0200, Pietro Battiston wrote: > > > Il giorno sab, 29/09/2012 alle 02.19 +0200, Pietro Battiston ha > scritto: > > > > Sì, ho provato, non cambia niente. > > > > > > > > L'idea che mi sono fatto è che wget sia semplicemente incapace di > > > > parsare un proxy del genere (e d'altronde non c'è altro modo per > > > > darglielo). Non dispero invece del tutto in urllib2, semplicemente > non > > > > capisco cosa stia succedendo. > > > > senza sapere ne' leggere ne' scrivere, le seguenti opzioni non ti sono > > di aiuto, magari solo per semplificare l'url del proxy? > > > > --proxy-user=UTENTE imposta il nome utente per il proxy a > UTENTE. > > --proxy-passwd=PASS imposta la password per il proxy a PASS. > > > > Uh, molto carini questi parametri. In effetti non riuscendo a passare > come argomento il proxy non avevo neanche immaginato di poterne passare > i dati di autenticazione. > > Il fatto che anche in questo modo il proxy mi dia un errore 407 mi > lascia sempre più sconsolato. > > > > e magari una cosa del genere, sempre senza saper ne' leggere ne' > > scrivere? > > > > #! /usr/bin/python > > > > import urllib2 > > > > proxy_url = r'http://proxybiblio2.si.unimib.it:8080/'} > > proxy = urllib2.ProxyHandler({'http': proxy_url}) > > auth = urllib2.ProxyDigestAuthHandler() > > auth.add_password(realm, proxy_url, 'username', 'password') > > opener = urllib2.build_opener(proxy, auth, urllib2.HTTPHandler) > > urllib2.install_opener(opener) > > conn = urllib2.urlopen('http://webofknowledge.com') > > return_str = conn.read() > > > > > Questo è esattamente quello che provavo, e per l'appunto dopo l'errore > 407 si arrende... > > In cambio ho scoperto qualcos'altro di interessante. A differenza della > classe ProxyDigestAuthHandler, la ProxyBasicAuthHandler ha due metodi > "http_error_auth_reqed" e "get_cnonce", che sembrano interessanti (e > sono chiaramente totalmente privi di documentazione). > > Inoltre entrambe le classi hanno un metodo "http_error_407(req, fp, > code, msg, hdrs)" la cui documentazione è proprio > "Retry the request with authentication information, if available." > > Il mio problema è come usarli questi metodi. Ora ho capito¹ come > recuperare gli header della pagina di errore e provo un po' a giocarci > alla cieca... > > ciao > > Pietro > > ¹ > > http://stackoverflow.com/questions/6402051/getting-error-headers-with-urllib2 > > > > _______________________________________________ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python >
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python