python proxy urllib2 socks

python - ¿Cómo puedo usar un proxy SOCKS 4/5 con urllib2?



(3)

¿Cómo puedo usar un proxy SOCKS 4/5 con urllib2 para descargar una página web?


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

En ese caso, debe 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()


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


Puede usar el módulo SocksiPy . Simplemente copie el archivo "socks.py" en el directorio lib / site-packages de su Python y estará listo para comenzar.

Debes usar calcetines antes de urllib2. (Pruébalo pip install PySocks )

Por ejemplo:

import socks import socket socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 8080) socket.socket = socks.socksocket import urllib2 print urllib2.urlopen(''http://www.google.com'').read()

También puede probar pycurl lib y tsocks, para más detalles, haga clic here .