Comment utiliser un proxy SOCKS 4/5 avec urllib2 pour télécharger une page Web?
Réponses
Trop de publicités?Vous pouvez utiliser le module SocksiPy . Copiez simplement le fichier "socks.py" dans le répertoire lib / site-packages de votre Python, et vous êtes prêt à partir.
vous devez utiliser des chaussettes avant urllib2.
Par exemple:
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()
Vous pouvez également essayer pycurl lib et tsocks. Pour plus de détails, cliquez ici .
Ajouter une alternative à la réponse de pan lorsque vous devez utiliser plusieurs mandataires différents en même temps.
Dans ce cas, vous devez créer un programme d'ouverture, comme vous le faites avec un proxy http. Un code est disponible dans 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()
SOCKS étant un proxy de niveau de socket, vous devez remplacer l'objet socket utilisé par urllib2
. S'il vous plaît jeter un oeil à cette solution. Si les correctifs monkey ne vous suffisent pas, vous pouvez essayer de sous-classer ou de copier-modifier le code à partir de la bibliothèque standard urllib2
.