Genau wie Web-Scraper können Sie einen Proxy-Rotator ganz alleine erstellen, verwalten und nutzen. Dafür benötigen Sie Programmierkenntnisse (Python ist ideal, da es viele wertvolle Frameworks und eine aktive Community bietet), etwas allgemeines Informatikwissen, eine Liste von Proxys und jede Menge Geduld.
Die einfachste Form wäre ein Skript, das eine Variable mit Ihrer Proxy-Liste empfängt und jeder Anfrage zufällige IPs zuweist. Sie könnten beispielsweise die Funktion random.sample() verwenden, um jedes Mal eine IP völlig zufällig auszuwählen, aber das bedeutet, dass derselbe Proxy möglicherweise mehrmals hintereinander verwendet wird. In diesem Fall könntest du es so einrichten, dass eine IP-Adresse nach ihrer Verwendung aus der Proxy-Liste entfernt wird, sodass sie erst wieder verwendet wird, wenn alle anderen Adressen ebenfalls aufgebraucht sind.
Hier ist ein kurzes Beispiel in Python:
import random
import requests
proxy_pool = ["191.5.0.79:53281", "202.166.202.29:58794", "51.210.106.217:443", "5103.240.161.109:6666"]
URL = 'https://httpbin.org/get'
while len(proxy_pool) >0:
random_proxy_list = random.sample(proxy_pool, k=1)
random_proxy = {
'http': 'http://' + random_proxy_list[0],
}
response = requests.get(URL, proxies=random_proxy)
print(response.json())
proxy_pool.remove(random_proxy_list[0])
Der Code durchläuft den Proxy-Pool nur einmal und wendet ihn auf eine einzige URL an, aber er sollte die Logik gut veranschaulichen. Die IPs habe ich übrigens von https://free-proxy-list.net/ bezogen. Es überrascht nicht, dass sie nicht funktionierten.
Das ist eigentlich das Problem beim Erstellen eines eigenen Rotators. Man braucht immer noch gute dedizierte oder zumindest gemeinsam genutzte IPs. Wenn man schon dabei ist, Proxys zu kaufen, kann man sich genauso gut nach einer Lösung umsehen, die die IPs auch für einen rotiert. Auf diese Weise verschwendet man keine zusätzliche Zeit mit der Erstellung oder kein zusätzliches Geld für die Auslagerung. Außerdem erhält man weitere Vorteile wie:
- Eine schnelle Option, um nur IPs aus einer bestimmten Region zu rotieren;
- Die Möglichkeit, auszuwählen, welche Arten von Proxys rotiert werden sollen (Rechenzentrum oder Privatadressen; regulär oder mobil; usw.)
- Einrichtung statischer IPs für den Fall, dass Sie hinter einem Login-Bildschirm scrapen;
- Automatische Wiederholungsversuche mit neuen IPs, wenn eine Anfrage fehlschlägt.
Nehmen wir WebScrapingAPI als Beispiel dafür, wie einfach es ist, eine Seite mit rotierenden Proxys zu scrapen. Der folgende Code stammt direkt aus der Dokumentation, wo es viele weitere ähnliche Codeausschnitte gibt:
import requests
url = "https://api.webscrapingapi.com/v1"
params = {
"api_key":"XXXXXX",
"url":"https://httpbin.org/get",
"proxy_type":"datacenter",
"country":"us"
}
response = requests.request("GET", url, params=params)
print(response.text)
Das ist der gesamte Code, den Sie benötigen, um eine URL unter Verwendung von Rechenzentrumsproxys aus den USA zu scrapen. Beachten Sie, dass es keine Liste von IPs zum Wechseln und nicht einmal einen Parameter dafür gibt. Das liegt daran, dass die API standardmäßig die Proxys wechselt. Wenn Sie dieselbe IP für mehrere Sitzungen verwenden möchten, fügen Sie einfach einen neuen Parameter hinzu:
import requests
url = "https://api.webscrapingapi.com/v1"
params = {
"api_key":"XXXXXX",
"url":"https://httpbin.org/get",
"proxy_type":"datacenter",
"country":"us",
"session":"100"
}
response = requests.request("GET", url, params=params)
print(response.text)
Verwenden Sie einfach dieselbe Ganzzahl für den Parameter „session“, um für jede URL dieselbe statische IP zu nutzen.