2010-02-23 12 views

risposta

4

Poiché SOCKS è un proxy a livello di socket, è necessario sostituire l'oggetto socket utilizzato da urllib2. Si prega di dare un'occhiata a una soluzione this. Se la patch della scimmia non è abbastanza buona per te, puoi provare a sottoclasse o copiare-modificare il codice dalla libreria standard urllib2.

20

Aggiunta di un'alternativa alla risposta di pan quando è necessario utilizzare più proxy diversi allo stesso tempo.

In tal caso è necessario creare un dispositivo di apertura come si fa con un proxy http. C'è un codice disponibile in GitHub https://gist.github.com/869791

opener = urllib2.build_opener(SocksiPyHandler(socks.PROXY_TYPE_SOCKS4, 'localhost', 9999)) 
print opener.open('http://www.whatismyip.com/automation/n09230945.asp').read() 
+0

Ehi, stavo usando il codice da github. Sfortunatamente, l'autenticazione non funziona. Ho passato il nome utente e la password corretti in socksipyhandler.py, tuttavia ho ricevuto l'errore (3, 'nome utente sconosciuto o password non valida'). Posso confermare che la mia password nome utente funziona, dal momento che il mio comando cURL funziona con le stesse credenziali. –

+0

Nevermind, capito il problema, c'era un errore di battitura in socks.py =), btw, ottimo lavoro. Grazie mille! –

Problemi correlati