ciemne logo proxyscrape

How To Use Proxies To Rotate IP Addresses In Python? 5 Easy Steps In 2024

Jak to zrobić, Proxy, Python, 02 listopada 2022 r.5 minut czytania

Spis treści

Gdy korzystasz z serwera proxy, nie łączysz się bezpośrednio z serwerem docelowym; zamiast tego kierujesz swoje żądanie do serwera proxy, który je ocenia i zwraca odpowiedź. Serwery proxy mają wiele zalet, takich jak ukrywanie prawdziwych adresów IP, omijanie filtrów, cenzury itp. 

Czasami trudno jest wykonać zaawansowany web scraping z powodu wysyłania wielu żądań z tego samego adresu IP. Web scraperzy napotykają na powszechny problem blokowania przez strony internetowe, które skrobią. Mogą jednak użyć wielu technik, aby zapobiec blokowaniu, takich jak
  • Rotacyjne adresy IP
  • Korzystanie z przeglądarek bezgłowych
  • Zmniejszenie szybkości indeksowania,
  • Korzystanie z serwerów proxy

Rotator proxy może pomóc w obejściu większości środków zapobiegających skrobaniu. Można go również użyć do ominięcia wszelkich ograniczeń szybkości zaimplementowanych na docelowej stronie internetowej i pomyślnego wyodrębnienia danych. Czym jednak jest rotacyjny serwer proxy? Jest to serwer proxy, który przypisuje nowy adres IP dla każdego połączenia z puli proxy. Oznacza to, że można wysłać 1000 żądań do dowolnej liczby stron internetowych, uruchamiając skrypt i uzyskując 1000 różnych adresów IP.

Ten artykuł pomoże ci zrozumieć, jak używać serwerów proxy do obracania adresów IP w Pythonie.

Jak używać serwerów proxy do rotacji adresów IP w Pythonie?

Możesz pobrać listę darmowych serwerów proxy i zapisać je w pliku tekstowym o nazwie list_proxy.txt. Następnie możesz wykonać poniższe kroki, aby obrócić adresy IP w Pythonie.

Import bibliotek

Musisz zaimportować moduł żądań Pythona za pomocą poniższego polecenia.

żądania importu

Jeśli moduł nie jest zainstalowany w twoim środowisku, możesz go zainstalować za pomocą poniższego polecenia.

pip install requests

Utwórz funkcję

Musisz utworzyć funkcję send_request, która przyjmie dwa parametry, tj. sesję i proxy. Lepiej byłoby użyć proxy HTTP, ponieważ większość darmowych proxy nie używa protokołu HTTPS. Użyjemy bloków try-except, ponieważ większość darmowych serwerów proxy nie działa, ponieważ zostały zablokowane.
def send_request(session, proxy):
   try:
       response = session.get('http://httpbin.org/ip', proxies={'http': f"http://{proxy}"})
       print(response.json())
   except:
       pass

Odczyt pliku .txt

Oto główna część kodu. Musisz odczytać plik list_proxy.txt i zapisać go w zmiennej o nazwie proxy, jak pokazano poniżej.

if __name__ == "__main__":
  with open('lista_proxy.txt', 'r') as file:
       proxy = file.readlines()

Użyj pętli for

Aby utworzyć sesję w Pythonie, należy użyć modułu requests. W poniższym kodzie użyliśmy pętli for do zapętlenia proxy. Następnie przekazaliśmy sesję i proxy do funkcji send_request. 

with requests.Session() as session:
  for proxy in proxy:
       send_request(session, proxy)

Uruchom skrypt

Możesz uruchomić skrypt i zobaczyć dane wyjściowe, jak pokazano poniżej. Otrzymasz długą listę serwerów proxy, ale pamiętaj, że nie będą one działać. 

python rotateproxy.py

Cały kod będzie wyglądał następująco:

import requests


def send_request(session, proxy):
   try:
       response = session.get('http://httpbin.org/ip', proxies={'http': f"http://{proxy}"})
       print(response.json())
   except:
       pass


if __name__ == "__main__":
   with open('list_proxy.txt', 'r') as file:
       proxies = file.readlines()

   with requests.Session() as session:
       for proxy in proxies:
           send_request(session, proxy)

Wskazówki dotyczące tworzenia rotatora proxy

Poniżej podano kilka wskazówek dotyczących obracania serwerów proxy w Pythonie podczas korzystania z obrotowego serwera proxy.

Korzystanie z niezawodnych, bezpłatnych usług proxy

Większość dostępnych darmowych usług proxy jest przeciążona, co prowadzi do nieoczekiwanych awarii i frustrujących opóźnień. Dlatego też, gdy planujesz skorzystać z darmowych serwerów proxy, musisz sprawdzić, czy spełniają one twoje potrzeby w zakresie skrobania bez powodowania znaczących spadków.

Większość darmowych serwerów proxy jest ważna przez ograniczony czas, więc można zbudować własną logikę w Pythonie, która może rotować rotator listy darmowych serwerów proxy z działającymi adresami IP. W ten sposób nie wystąpią żadne zakłócenia podczas skrobania stron internetowych. 

Powstrzymywanie się od korzystania z przewidywalnych adresów IP proxy

Należy unikać używania adresów IP, które mają określoną sekwencję lub przewidywalny format, np. należą do tej samej grupy. Wynika to z faktu, że większość narzędzi anty-scrapingowych może łatwo wykryć żądania wysyłane z takich adresów IP. Na przykład, powinieneś powstrzymać się od używania następującej sekwencji rotujących adresów IP, ponieważ szybko podniesie to czerwoną flagę.

103.243.132.11

103.243.132.12

103.243.132.13

103.243.132.14

Rozważ usługę proxy premium

Darmowe rotatory IP proxy są niepewne i powolne. Dlatego też korzystanie z nich nie będzie odpowiednie w przypadku wykonywania zaawansowanych i zakrojonych na szeroką skalę projektów skrobania stron internetowych. Korzystając z dobrych serwerów proxy premium, można uzyskać wysokiej jakości usługę i skrobać tysiące stron internetowych bez doświadczania blokad lub zakłóceń. 

Aby skorzystać z usługi proxy premium, należy zapłacić kilka dolarów i uzyskać dostawcę, który spełni potrzeby w zakresie ekstrakcji danych i zagwarantuje prywatność.

Wybierz elitarne serwery proxy

Poniżej przedstawiono trzy główne kategorie serwerów proxy w Internecie.

  • Elite Proxies
  • Anonimowi pełnomocnicy
  • Przejrzyste serwery proxy
Elitarne serwery proxy są najlepszą opcją do rozważenia spośród tych serwerów proxy, ponieważ mogą zapobiegać wykrywaniu i omijać ograniczenia. Za pomocą elitarnego serwera proxy można wysyłać tylko nagłówek REMOTE_ADDR, pozostawiając inne nagłówki puste. W ten sposób można osiągnąć optymalną prywatność dzięki tym serwerom proxy.
Z drugiej strony, przezroczysty serwer proxy ujawnia szczegóły adresu IP użytkownika i wysyła jego rzeczywisty adres IP za pośrednictwem nagłówka HTTP_VIA i HTTP_X_FORWARDED_FOR. Anonimowy serwer proxy nie ujawnia rzeczywistego adresu IP użytkownika. Wysyła adres IP serwera proxy lub pozostawia go pustym.

Połączenie rotacji adresów IP z rotacją agentów użytkownika

Można użyć rotacji adresów IP w celu rotacji wielu adresów IP i uniknięcia wykrycia. Jednak niektóre środki zapobiegające skrobaniu mogą zidentyfikować takie działania i zablokować zbieranie danych. Dlatego też, aby zwiększyć swoje szanse na sukces, oprócz rotacji adresów IP należy również rotować agentów użytkownika. 

Najczęściej zadawane pytania:

1. How to use proxies to rotate IP addresses using python?
Za pomocą żądań biblioteki Python można z łatwością rotować proxy. Po pierwsze, pobierz listę darmowych serwerów proxy ze strony ProxyScrape, po drugie, utwórz funkcję, której możesz użyć do przeprowadzenia całego procesu rotacji IP; po trzecie, użyj funkcji read, aby odczytać pobrane darmowe serwery proxy; i wreszcie, uruchom skrypt za pomocą pętli for, aby uzyskać serwer proxy, który jest dostępny dla sesji.
2. Is there a proxy rotator available online?
Tak, istnieją rotatory proxy dostępne online. Zamiast ręcznie obracać serwery proxy w centrum danych, można użyć tych rotatorów proxy do wykonania ciężkiej pracy. Są to jednak usługi płatne; jeśli chcesz darmowego rotatora proxy, najlepszą szansą jest zbudowanie rotatora za pomocą Pythona.
3. How do proxies help in web scraping?
Serwery proxy pomagają maskować oryginalny adres IP użytkownika i wykorzystują swój adres IP do wysyłania wielu żądań do serwera docelowego w celu uzyskania niezbędnych informacji. W przypadku skrobania stron internetowych konieczne jest szybkie wysyłanie wielu żądań, co serwer docelowy może uznać za nieprawidłowe zachowanie i zablokować adres IP użytkownika. Proxy pomaga uniknąć takich scenariuszy.

Wnioski

Stworzenie rotatora proxy w Pythonie jest bardzo proste. Można wygenerować losowe serwery proxy, a następnie zbudować logikę do skrobania danych ze stron internetowych. Oprócz serwerów proxy dla centrów danych i serwerów proxy rezydencjalnych, inne kategorie to elitarne, anonimowe i przezroczyste serwery proxy. Elitarne serwery proxy są najlepszą opcją, ponieważ są trudne do wykrycia przez stronę docelową. Anonimowych serwerów proxy można używać, jeśli chce się zachować prywatność w Internecie. Wreszcie, można użyć przezroczystych serwerów proxy, ale oferują one najmniejszą szansę na sukces. Ten artykuł ma na celu dostarczenie szczegółowych informacji i przykładów, jak używać serwerów proxy do obracania adresów IP w Pythonie za pomocą prostych kroków kodowania