2010-02-23 8 views

Odpowiedz

4

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.

20

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() 
+0

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. –

+0

Nieważne, wymyśliłem problem, w socks.py =) było literówka, świetna robota. Dzięki za tonę! –

Powiązane problemy