1. Co to jest proxy?
Mały wstęp do sieci
Proxy to, w zasadzie, twój osobisty agent wywiadu w cyberprzestrzeni. Wyobraź sobie, że chcesz pozostać anonimowy w sieci i potrzebujesz pośrednika, który będzie przekazywał twoje zapytania do serwera, a potem zwracał odpowiedzi, ukrywając twój prawdziwy adres IP. Proxy właśnie to robi — anonimowo przesyła twoje zapytania i zwraca odpowiedzi.
Rodzaje proxy
Zanim przejdziemy do kodu, zróbmy mały przegląd rodzajów serwerów proxy. Są różne ich rodzaje, z różnymi zastosowaniami i cechami:
- HTTP proxy: Używane do obsługi zapytań HTTP. Świetnie nadają się do zwykłego przeglądania stron internetowych.
- HTTPS proxy: Obsługują szyfrowane zapytania HTTPS. Ważne dla bezpiecznego połączenia.
- SOCKS proxy: Bardziej uniwersalne i mogą obsługiwać dowolny typ ruchu sieciowego. Idealny wybór, gdy zależy ci na maksymalnej elastyczności.
2. Konfiguracja proxy w Pythonie
Konfiguracja proxy w Pythonie to bułka z masłem, prościej niż zabronić kotu siedzieć na klawiaturze. Skorzystamy z
biblioteki requests
, która pozwala na łatwe ustawienie parametrów proxy dla połączeń HTTP i HTTPS.
Instalacja biblioteki requests
Jeśli z jakiegoś powodu nie masz jeszcze zainstalowanej biblioteki requests
, najwyższy czas to zmienić.
Oto jak to zrobić:
import requests
# Definiujemy proxy dla zapytań HTTP i HTTPS
proxies = {
'http': 'http://your.proxy.server:port',
'https': 'https://your.proxy.server:port'
}
# Wykonujemy zapytanie przez proxy
response = requests.get('http://example.com', proxies=proxies)
# Wyświetlamy wynik
print(response.text)
pip install requests
Przykład użycia proxy
Zobaczmy teraz, jak przesyłać zapytania przez proxy. W tym celu wykorzystamy możliwości biblioteki requests
.
import requests
# Definiujemy proxy dla zapytań HTTP i HTTPS
proxies = {
'http': 'http://your.proxy.server:port',
'https': 'https://your.proxy.server:port'
}
# Wykonujemy zapytanie przez proxy
response = requests.get('http://example.com', proxies=proxies)
# Wyświetlamy wynik
print(response.text)
Zwróć uwagę na formatowanie ciągu proxy. Twoim zadaniem jest zastąpienie
your.proxy.server:port
adresem URL i portem proxy, którego używasz. W sieci znajdziesz zarówno płatne,
jak i darmowe proxy. Gdyby darmowe proxy brały udział w konkursie „Miss Universe”, wygrałyby z dużą przewagą.
3. Zalety korzystania z proxy
Omijanie ograniczeń
Proxy pozwalają omijać ograniczenia na częstotliwość zapytań, które narzucają niektóre strony. Dzięki rotacji proxy możesz zmieniać adresy IP i unikać blokad. To jak zmiana płyty w odtwarzaczu — twój skrypt nie będzie natrętny.
Anonimowość
Używając proxy, możesz zachować anonimowość swoich działań. Jest to szczególnie ważne, gdy chcesz uniknąć ograniczeń związanych z adresem IP. W zasadzie pozwala to na "charakteryzację" w oczach zdalnego serwera.
4. Rotacja proxy
Przejdźmy teraz do rotacji proxy. To jak kręcenie ruletki — nigdy nie wiadomo, na co się trafi. W naszym przypadku rotacja służy do używania różnych adresów IP podczas scrapingu i unikania podejrzeń ze strony serwerów.
import random
# Lista dostępnych proxy
proxy_list = [
'http://proxy1:port',
'http://proxy2:port',
'http://proxy3:port'
]
def get_random_proxy():
return random.choice(proxy_list)
proxies = {
'http': get_random_proxy(),
'https': get_random_proxy()
}
# Wykonujemy zapytanie przez losowo wybrane proxy
response = requests.get('http://example.com', proxies=proxies)
print(response.text)
Zaawansowana rotacja
Możesz ulepszyć swój skrypt, dodając logikę, która sprawdza dostępność proxy i zmienia je w przypadku niedostępności. Dzięki temu będziesz korzystać z niezawodnego zbioru adresów proxy.
GO TO FULL VERSION