Jak mogę użyć serwera proxy SOCKS 4/5 z urllib2 do pobrania strony internetowej?Jak mogę używać proxy SOCKS 4/5 z urllib2?
Odpowiedz
Ponieważ SOCKS jest proxy poziomu gniazd, należy zastąpić obiekt gniazda używany przez urllib2
. Proszę spojrzeć na rozwiązanie this. Jeśli łatanie małp nie jest dla ciebie wystarczająco dobre, możesz spróbować podkodować lub skopiować - zmodyfikować kod ze standardowej biblioteki urllib2
.
Dodanie alternatywy dla odpowiedzi patelni, gdy trzeba korzystać z wielu różnych serwerów proxy w tym samym czasie.
W takim przypadku należy utworzyć narzędzie otwierające, podobnie jak w przypadku serwera proxy http. Jest to kod dostępny w 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()
Hej, użyłem kodu z github. Niestety, uwierzytelnianie nie działa. Przekazałem prawidłową nazwę użytkownika i hasło w pliku socksipyhandler.py, ale pojawia się błąd (3, "nieznana nazwa użytkownika lub nieprawidłowe hasło"). Mogę potwierdzić, że moje hasło do nazwy użytkownika działa, ponieważ moje polecenie cURL działa z tymi samymi danymi uwierzytelniającymi. –
Nieważne, wymyśliłem problem, w socks.py =) było literówka, świetna robota. Dzięki za tonę! –
pokrewne dla Tora: http://stackoverflow.com/questions/1096379/how-to-make-urllib2-requests-through-tor-in-python –