Zurück zum Blog

Was sind ISP-Proxys und wie nutzt man sie für das Web-Scraping?

Was sind ISP-Proxys und wie nutzt man sie für das Web-Scraping?

Proxys sind ein sehr wichtiger Aspekt beim Web-Scraping. Dabei gibt es im Wesentlichen drei Arten von Proxys. Es gibt Datencenter-, Residential- und ISP-Proxys. Jede Art hat ihre eigenen Anwendungsfälle. Dennoch gibt es kaum bis gar keine Informationen darüber, was sie bedeuten und wann man sie beim Web-Scraping einsetzen sollte. Und gerade ISP-Proxys werden von Tech-Autoren oft außer Acht gelassen. Deshalb werden wir uns heute auf diese Art von Proxys konzentrieren. Am Ende des heutigen Artikels sollten Sie ein solides Verständnis davon haben:

  • Was ein Proxy im Allgemeinen ist und wie er funktioniert
  • Was die Definition eines ISP-Proxys ist und welche Besonderheiten er aufweist
  • Wie und warum man ISP-Proxys für das Web-Scraping verwendet

Was ist ein Proxy-Server?

Kurz gesagt sind Proxys Middleware zwischen Clients und Servern. Ein Proxy fungiert als Vermittler für Anfragen von Clients, die Ressourcen von anderen Servern abrufen möchten. Der Ablauf einer Client-Proxy-Server-Beziehung sieht in etwa so aus:

  • Ein Client verbindet sich mit dem Proxy-Server und fordert einen Dienst von einem Zielserver an
  • Der Proxy-Server wertet die Anfrage aus, verbindet sich mit dem Zielserver und ruft den angeforderten Dienst ab
  • Sobald er den Dienst erhalten hat, leitet er ihn unverändert an den Client weiter.

Darüber hinaus werden Proxys auch verwendet, um:

  • die Sicherheit zu erhöhen
  • die Netzwerkleistung zu verbessern
  • den Netzwerkverkehr zu filtern
  • unerwünschte Websites zu blockieren
  • geografische Beschränkungen beim Internetzugang zu umgehen

Was ist die Definition von ISP-Proxys?

Wie wir in der Einleitung besprochen haben, gibt es hauptsächlich drei Arten von Proxys. Bei den ersten beiden ist die Definition ziemlich einfach. Datencenter-Proxys sind Proxys, die sich im Besitz von Rechenzentren befinden. Das bedeutet, dass ihre IP-Adressen mit dem Rechenzentrum verknüpft sind. Residential-Proxys haben eine IP-Adresse, die mit einem physischen Standort verknüpft ist. Außerdem sind diese IP-Adressen auf eine bestimmte Person oder Organisation registriert.

Was nun ISP-Proxys betrifft, herrscht ein wenig Verwirrung. Zunächst einmal steht ISP für Internet Service Provider. Und wie Sie sich vorstellen können, stammen alle Residential-IPs von ISPs. Nun, dieser kleine Aspekt beantwortet die Frage teilweise. ISP-Proxys liegen irgendwo zwischen Rechenzentrums- und Residential-Proxys.

Meistens werden Sie feststellen, dass ein ISP-Proxy eigentlich ein Residential-Proxy ist, der auf einem Rechner im Rechenzentrum gehostet wird. Daher vereinen diese Proxys die Vorteile der beiden anderen. Zu den Vorteilen gehören vor allem (sind aber nicht beschränkt auf):

  • IP-Legitimität – die Verwendung einer privaten IP-Adresse senkt das Risiko der Bot-Erkennung
  • Geschwindigkeit – das Hosten des Proxys auf einem Server im Rechenzentrum erhöht die Leistung des Dienstes

Warum ISP-Proxys für Web-Scraping verwenden?

Der Einsatz von Proxys beim Web-Scraping ist ein recht häufiger Bedarf. Bevor wir jedoch speziell auf ISP-Proxys eingehen, möchte ich Ihnen erklären, warum Proxys für das Scraping wichtig sind. Definieren wir zunächst einmal, was Web-Scraping ist. Allgemein gesagt ist Web-Scraping der Zugriff auf einen Server mit dem Ziel, Ressourcen zu extrahieren. Dies geschieht in der Regel mithilfe automatisierter Software. Darüber hinaus beinhaltet Web-Scraping typischerweise das Senden einer großen Anzahl von Anfragen an den Zielserver innerhalb kurzer Zeit.

Wie Sie sich vorstellen können, belastet dies den Server erheblich. Und deshalb sind Webplattformen in der Regel nicht „begeistert“, wenn Scraper auf ihre Server zugreifen. Um den Zugriff durch automatisierte Software zu verhindern, setzen diese Plattformen meist eine Art Erkennungs- und Präventionssystem ein. Und eine der Erkennungsmethoden ist so einfach wie nur möglich: die Überprüfung der IP-Adresse. Es ist naheliegend anzunehmen, dass IP-Adressen, die mit Rechenzentren in Verbindung stehen, eher Bots beherbergen.

Und ich denke, das beantwortet die Frage recht gut. Wenn wir die zuvor besprochenen Hauptvorteile berücksichtigen, erhalten wir ein umfassenderes Verständnis der Antwort. Wir nutzen ISP-Proxys beim Web-Scraping in erster Linie, um unsere Erfolgsquote zu steigern und gleichzeitig eine optimale Leistung zu gewährleisten. Aber das ist noch nicht alles. Lassen Sie uns weitere Szenarien betrachten:

#1: Zugriff auf standortspezifische Websites

Sicherlich sind Sie schon einmal auf Websites gestoßen, die sich an Besucher aus bestimmten Regionen richten. In der Suchmaschinenoptimierung (SEO) wird dieses Konzept als standortspezifischer Inhalt bezeichnet. Dabei prüfen Websites zunächst die Herkunft der IP-Adresse des Clients. Stimmt diese mit ihrem Muster überein (etwa bei einer US-Website, die sich ausschließlich an US-Kunden richtet), wird dem Client der Zugriff gewährt. Stammt der Client hingegen aus einem anderen Land, sperrt die Website den Zugriff.

Beim Web Scraping ist dies ein sehr häufiges Szenario. Als Workaround verwenden wir daher Proxys aus dem jeweiligen Land. Sie sollten zunächst einen Datacenter-Proxy ausprobieren. Wenn der Zugriff weiterhin gesperrt ist, können Sie es mit ISP-Proxys versuchen, die eine höhere Erfolgsquote bieten.

#2: Senden einer großen Anzahl von Anfragen

Wenn wir auf viele Ressourcen eines Servers zugreifen wollen, kann dies zu einer hohen Belastung des Servers führen. Server werten dies in der Regel als Missbrauch und sperren die IP-Adresse, von der all diese Anfragen gesendet werden. Um beim Web-Scraping eine Sperrung zu vermeiden, verwenden wir ein Rotationssystem, das zwischen ISP-Proxys wechselt. Auf diese Weise „glaubt“ der Server, dass verschiedene private Nutzer auf ihn zugreifen. Daher werden die Massenanfragen nicht blockiert.

Wie verwendet man ISP-Proxys für das Web-Scraping?

Es gibt im Wesentlichen zwei Arten von Web-Scrapern:

  • Basierend auf einfachen HTTP-Clients
  • Fähig, JavaScript zu rendern

Die erste Art ist nicht besonders komplex und in der Regel schneller, da sie kein Rendern von JavaScript erfordert. Es ist nicht anders als das Senden eines `curl`-Befehls. Die meisten modernen Websites sind jedoch stark auf JavaScript angewiesen. Ein gutes Beispiel ist die Verwendung eines einfachen HTTP-Clients zum Scrapen einer mit React oder Next JS erstellten Webplattform. In solchen Szenarien erhalten Sie wahrscheinlich eine HTML-Datei zurück, in der steht: „Bitte aktivieren Sie JavaScript“. Hier ist ein anschauliches Beispiel für eine App, die ich mit React erstellt habe:

~ » curl https://<REACT_APP>.com

...<body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>

Wenn Sie also einen modernen Scraper erstellen möchten, werden Sie höchstwahrscheinlich eine automatisierte Version eines Webbrowsers verwenden müssen. Dies hilft Ihnen dabei, JavaScript zu rendern und verschiedene Aktionen auf Ihrem Zielobjekt auszuführen.

Normalerweise verwende ich für meine Beispiele JavaScript und Puppeteer. Aber ich denke, dieses Mal werde ich zu meiner ersten und liebsten Programmiersprache wechseln: Python. Und die erste Wahl für Webdriver in Python ist Selenium. Schauen wir uns also an, wie man einen Web-Scraper mit Selenium und ISP-Proxys erstellt:

#1: Erstellen Sie ein neues Projekt

Das Wichtigste zuerst: Erstellen wir ein neues Verzeichnis, in dem unsere Dateien gespeichert werden. Öffne anschließend das Projekt in deiner bevorzugten IDE (ich verwende Visual Studio Code) und öffne ein neues Terminal. Um ein neues Terminal in VSCode zu öffnen, gehe zu „Terminal > Neues Terminal“. Wir erstellen eine neue virtuelle Umgebung innerhalb des Projekts und aktivieren sie:

~ » python3 -m venv env && source env/bin/activate

Erstellen wir in Ihrem Projekt eine neue Datei „scraper.py“ und fügen wir etwas Code hinzu. Die grundlegende Struktur eines Scrapers mit Selenium aus der Perspektive der funktionalen Programmierung lautet:

from selenium import webdriver

def scrape_page(url):

   driver = webdriver.Chrome()

   driver.get(url)

   return driver.page_source

Und das war’s schon. In 5 Zeilen Code:

  • Wir starten einen automatisierten Browser
  • Wir greifen auf unser Ziel zu
  • Und wir sammeln dessen Ressourcen.

Aber denken Sie daran, dass wir ISP-Proxys mit Selenium verwenden wollen. Damit ist unser Browser zwar nicht der unauffälligste, aber sagen wir mal: schwerer zu entdecken. Glücklicherweise ist das in Python ganz einfach (und genau deshalb liebe ich es). So fügen wir Proxys in Selenium ein:

from selenium import webdriver

def scrape_page(url, proxy):

   options = webdriver.ChromeOptions()

   options.add_argument('--proxy-server=%s' % proxy)

   driver = webdriver.Chrome(options=options)

   driver.get(url)

   return driver.page_source

print(scrape_page('http://httpbin.org/ip', '75.89.101.60:80'))

Wir haben lediglich weitere Zeilen innerhalb der Funktion hinzugefügt. Die letzte dient dazu, die Funktion aufzurufen. Wenn Sie das Skript jetzt ausführen, sollten wir wahrscheinlich sehen können, dass die Anfrage von 75.89.101.60 stammt. Für dieses Beispiel habe ich einen kostenlosen Proxy-Server von hier verwendet. Wenn du jedoch einen echten Scraper erstellen möchtest, empfehle ich dir, nach zuverlässigeren Quellen zu suchen. Vorzugsweise Proxy-Anbieter, die auch ISP-Proxys anbieten.

Wie überprüft man die Herkunft einer IP-Adresse?

Es gibt verschiedene Möglichkeiten, um zu überprüfen, ob eine IP-Adresse von einem ISP-Proxy stammt. Da wir heute jedoch über DevOps sprechen, sollten Sie sich wahrscheinlich mit der Verwendung des Terminals vertraut machen. Heute stelle ich Ihnen `whois` vor.

In Unix und Unix-ähnlichen Betriebssystemen ist `whois` integriert. Es handelt sich um ein Kommandozeilen-Dienstprogramm, mit dem Benutzer Informationen zu Zielen abrufen können. Und die Ziele können entweder Domainnamen oder IP-Adressen sein. Öffnen wir also ein neues Terminalfenster und testen wir diesen Befehl.

Zunächst senden wir einen `curl`-Befehl an die von ipify.org angebotene API. Auf diese Weise können Sie Ihre eigene IP-Adresse abrufen und den Test damit durchführen. Wenn Sie mit `curl` nicht vertraut sind, lesen Sie einfach meinen Artikel zur Verwendung von curl.

~ » curl api.ipify.org

<IP_ADDRESS>

Da wir nun eine IP-Adresse zum Testen haben, sende einfach deinen `whois`-Befehl. Ich habe meine eigene IP verwendet, aber du kannst <IP_ADDRESS> gerne durch deine eigene ersetzen:

~ » whois <IP_ADDRESS>

...

inetnum: 82.78.XX.0 - 82.78.XX.XX

netname: RO-RESIDENTIAL

descr: RCS & RDS Residential CGN

descr: City: Bucuresti

remarks: INFRA-AW

country: RO

...

Die Ausgabe ist umfangreich, aber ich wollte dir einen Überblick darüber geben, wie leicht eine private IP-Adresse erkannt wird. Es gibt auch öffentliche APIs, die IP-Adressen von Rechenzentren verfolgen, wie beispielsweise die von incolumitas angebotene.

Fazit

Heute haben wir sowohl die DevOps- als auch die Programmierkenntnisse beim Erstellen eines Web-Scrapers untersucht. Zum Abschluss stelle ich Ihnen eine einfache Frage: Kann man sagen, dass ISP-Proxys nichts anderes sind als Rechenzentrums-Proxys, die hinter einer privaten IP-Adresse versteckt sind? Ich denke, das ist nicht die genaueste Definition, aber sie beschreibt diese Proxys sicherlich ziemlich gut.

Bei Web Scraping API verwenden wir sowohl Residential- als auch Rechenzentrumsproxys. Das liegt daran, dass einige Ziele Traffic von nicht-privaten Proxys zulassen, andere hingegen nicht. Wenn Sie mehr darüber erfahren möchten, wie Sie Proxys mit unserer API nutzen können, schauen Sie sich unsere Dokumentation an.

Über den Autor
Mihnea-Octavian Manolache, Full-Stack-Entwickler @ WebScrapingAPI
Mihnea-Octavian ManolacheFull-Stack-Entwickler

Mihnea-Octavian Manolache ist Full-Stack- und DevOps-Entwickler bei WebScrapingAPI. Er entwickelt Produktfunktionen und sorgt für die Wartung der Infrastruktur, die den reibungslosen Betrieb der Plattform gewährleistet.

Los geht’s

Sind Sie bereit, Ihre Datenerfassung zu erweitern?

Schließen Sie sich den über 2.000 Unternehmen an, die WebScrapingAPI nutzen, um Webdaten im Unternehmensmaßstab ohne zusätzlichen Infrastrukturaufwand zu extrahieren.