2010-02-23 25 views

Respuesta

4

Dado que SOCKS es un proxy de nivel de socket, debe reemplazar el objeto de socket utilizado por urllib2. Consulte la solución this. Si el parche de mono no es lo suficientemente bueno para usted, puede intentar crear una subclase o copiar o modificar el código de la biblioteca estándar urllib2.

20

Agregando una alternativa a la respuesta de pan cuando necesite usar muchos proxies diferentes al mismo tiempo.

En ese caso, necesita crear un abridor como lo hace con un proxy HTTP. Hay un código disponible en 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

Oye, estaba usando el código de github. Lamentablemente, la autenticación no funciona. He pasado el nombre de usuario y la contraseña correctos en socksipyhandler.py; sin embargo, aparece el error (3, "nombre de usuario desconocido o contraseña no válida"). Puedo confirmar que mi contraseña de nombre de usuario funciona, ya que mi comando cURL funciona con las mismas credenciales. –

+0

No importa, descubrió el problema, había un error tipográfico en socks.py =), por cierto, buen trabajo. ¡Gracias una tonelada! –

Cuestiones relacionadas