Wie man die Proxy-Rotation mit Python automatisiert

Wie man die Proxy-Rotation mit Python automatisiert

Grundlegendes zur Proxy-Rotation

Im komplexen Zusammenspiel von Web-Scraping und automatisierten Anfragen ist die Proxy-Rotation sowohl Schutz als auch Waffe. Sie verschleiert Ihre digitale Spur und verhindert, dass Anfragen ihre Herkunft gegenüber wachsamen Servern preisgeben. Die Proxy-Rotation nutzt eine sorgfältig ausgewählte Liste von Proxy-Servern, sodass jede Anfrage so aussieht, als käme sie von einer anderen Quelle – und umgeht so Sperren, Ratenbegrenzungen und die Überwachung durch Anti-Bot-Mechanismen.


Wichtige Proxy-Rotationsstrategien

Strategie Beschreibung Anwendungsfall Komplexität
Rundenturnier Durchläuft die Proxys nacheinander der Reihe nach Allgemeine Abkratzungen, Ziele mit geringem Verdacht Niedrig
Zufällige Auswahl Wählt für jede Anfrage zufällig einen Proxy aus dem Pool aus. Vermeidung erkennbarer Muster Medium
Adaptive/Intelligente Wahl Wählt Proxys basierend auf Status, Geschwindigkeit oder Sperrhistorie aus. Großflächiges, hochempfindliches Abkratzen Hoch

Vorbereitung der Proxy-Liste

Eine Proxy-Liste ist das Lebenselixier der Rotation. Sie kann von kostenpflichtigen Anbietern wie beispielsweise … bezogen werden. Bright-Daten, Oxylabs, oder kostenlose Aggregatoren wie Kostenlose Proxy-Liste.

Tabelle: Beispiele für das Proxy-Listenformat

Format Beispiel
IP:Port 51.158.68.68:8811
IP:Port:Benutzer:Passwort 51.158.68.68:8811:Benutzername:Passwort

Speichern Sie Ihre Proxys in einer einfachen Textdatei (z. B., proxies.txt) mit einem Proxy pro Zeile, eine Vorgehensweise, die sowohl elegant als auch praktisch ist.


Implementierung der Proxy-Rotation in Python

1. Lesen der Proxy-Liste

def load_proxies(filename): with open(filename, 'r') as f: return [line.strip() for line in f if line.strip()]

2. Round-Robin-Proxy-Rotation

import itertools proxies = load_proxies('proxies.txt') proxy_pool = itertools.cycle(proxies) def get_next_proxy(): return next(proxy_pool)

Jeder Anruf an get_next_proxy() bietet den nächsten Stellvertreter in einem nahtlosen, endlosen Kreislauf – eine Hommage an die geordnete Anmut eines Pariser Walzers.

3. Integration mit Anfragen

Für HTTP-Anfragen Anfragen Die Bibliothek ist sowohl robust als auch zugänglich.

import requests def format_proxy(proxy): parts = proxy.split(':') if len(parts) == 2: return {'http': f'http://{proxy}', 'https': f'https://{proxy}'} elif len(parts) == 4: ip, port, user, pwd = parts proxy_auth = f"{user}:{pwd}@{ip}:{port}" return {'http': f'http://{proxy_auth}', 'https': f'https://{proxy_auth}'} else: raise ValueError("Ungültiges Proxy-Format") url = "https://httpbin.org/ip" proxy = get_next_proxy() proxies_dict = format_proxy(proxy) response = requests.get(url, proxies=proxies_dict, timeout=10) print(response.json())

Proxy-Rotation mit Requests-HTML und Selenium

Manche Webseiten, so schwer fassbar wie Prousts Madeleines, benötigen JavaScript zum Rendern. Hierfür werden Tools wie … benötigt. Requests-HTML oder Selen sind unverzichtbar.

Requests-HTML-Beispiel:

from requests_html import HTMLSession session = HTMLSession() proxy = get_next_proxy() proxies_dict = format_proxy(proxy) r = session.get('https://httpbin.org/ip', proxies=proxies_dict) print(r.html.text)

Selenium-Beispiel:

Selenium erfordert eine Proxy-Konfiguration auf Treiberebene.

from selenium import webdriver from selenium.webdriver.common.proxy import Proxy, ProxyType def configure_selenium_proxy(proxy): ip, port = proxy.split(':')[:2] selenium_proxy = Proxy() selenium_proxy.proxy_type = ProxyType.MANUAL selenium_proxy.http_proxy = f"{ip}:{port}" selenium_proxy.ssl_proxy = f"{ip}:{port}" return selenium_proxy proxy = get_next_proxy() chrome_options = webdriver.ChromeOptions() selenium_proxy = configure_selenium_proxy(proxy) capabilities = webdriver.DesiredCapabilities.CHROME.copy() selenium_proxy.add_to_capabilities(capabilities) driver = webdriver.Chrome(options=chrome_options, desired_capabilities=capabilities) driver.get('https://httpbin.org/ip')

Verwaltung des Proxy-Status und des Ausfalls

Ein elegantes Skript passt sich schnell an unerwartete Probleme an. Proxys können ablaufen, auf die Blacklist geraten oder hohe Latenzzeiten aufweisen. Überwachen Sie daher deren Status und entfernen oder priorisieren Sie fehlerhafte Proxys.

def check_proxy(proxy): try: proxies_dict = format_proxy(proxy) resp = requests.get('https://httpbin.org/ip', proxies=proxies_dict, timeout=5) return resp.status_code == 200 except Exception: return False healthy_proxies = [p for p in proxies if check_proxy(p)]

Für komplexere Gesundheitsprüfungen und automatische Ausfallsicherung sollten Sie Bibliotheken wie beispielsweise … in Betracht ziehen. Scrapy-rotierende Proxys.


Verwendung von Drittanbieterbibliotheken

Für größere Orchesterarrangements bieten Drittanbieterbibliotheken eine Vielzahl von Funktionen:

Bibliothek Merkmale Dokumentation
Scrapy-rotierende Proxys Proxy-Pool-Verwaltung, Bannerkennung https://github.com/TeamHG-Memex/scrapy-rotating-proxies
Proxy-Pool Proxy-Erfassung, -Validierung, -Rotation https://github.com/jhao104/proxy_pool
Anfragen-zufälliger-Benutzer-Agent User-Agent- und Proxy-Randomisierung https://pypi.org/project/requests-random-user-agent/

Best Practices für die Proxy-Rotation

  • Diversität: Verwenden Sie Proxys aus verschiedenen IP-Bereichen und Standorten.
  • Respect Robots.txt: Beachten Sie die Website-Richtlinien im Sinne digitaler Höflichkeit.
  • Ratenbegrenzung: Drosselungsanforderungen, um menschliches Verhalten nachzuahmen und einer Entdeckung zu entgehen.
  • Protokollierung: Protokollieren Sie die Nutzung des Proxys und etwaige Fehler zur späteren Optimierung.
  • Rechtliche Überlegungen: Prüfen Sie die rechtlichen und ethischen Rahmenbedingungen Ihrer Aktivitäten (siehe Leitfaden der EFF).

Weitere Informationen

Diese Werkzeuge und Praktiken sollen Ihnen als Passierschein durch die vielfältigen Boulevards des Internets dienen, wobei jede Anfrage von der subtilen Eleganz einer sich ständig verändernden Maske begleitet wird.

Solange Lefebvre

Solange Lefebvre

Leitender Proxy-Analyst

Solange Lefebvre, eine Kennerin digitaler Pfade, leitet seit über einem Jahrzehnt die analytische Abteilung von ProxyMist. Mit ihrer beispiellosen Expertise in Netzwerksicherheit und Proxyserver-Management war sie maßgeblich an der Zusammenstellung und Pflege einer der weltweit umfassendsten Listen von SOCKS-, HTTP-, Elite- und anonymen Proxyservern beteiligt. Solange, eine Französin mit einem Faible für Präzision, sorgt dafür, dass ProxyMist an der Spitze sicherer Internetlösungen bleibt.

Kommentare (0)

Hier gibt es noch keine Kommentare, Sie können der Erste sein!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert