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