Zurück zum Blog
Anleitungen
Suciu DanLast updated on Mar 31, 20265 min read

Entsperren Sie Websites und schützen Sie Ihre Identität mit Proxys und Axios Node.js

Entsperren Sie Websites und schützen Sie Ihre Identität mit Proxys und Axios Node.js

Was ist Axios?

Axios ist eine beliebte, Promise-basierte HTTP-Client-Bibliothek, mit der Sie HTTP-Anfragen in Node.js stellen können. Sie ist leichtgewichtig und benutzerfreundlich, was sie zu einer hervorragenden Wahl für Web-Scraping-Projekte macht.

Axios unterstützt eine Vielzahl von Funktionen, darunter Proxys, die automatische Konvertierung von JSON-Daten, die Unterstützung für das Abbrechen von Anfragen sowie die Unterstützung für Interceptors, mit denen Sie Aufgaben wie Authentifizierung und Fehlerbehandlung bewältigen können.

Was sind Proxys?

Proxys, auch als Proxy-Server bekannt, fungieren als Vermittler zwischen einem Client (wie einem Webbrowser oder einem Scraper) und einem Zielserver (wie einer Website).

Der Proxy empfängt Anfragen vom Client und leitet sie an den Zielserver weiter. Der Zielserver sendet die Antwort dann zurück an den Proxy, der sie wiederum an den Client zurücksendet.

Beim Web-Scraping können Sie Proxys verwenden, um die IP-Adresse des Scrapers zu verbergen, sodass die Website, die Sie scrapen, die Anfrage nicht erkennt und blockiert. Darüber hinaus kann die Verwendung mehrerer Proxys dazu beitragen, eine Erkennung zu verhindern und eine Sperrung zu vermeiden.

Einige Proxy-Anbieter bieten IP-Rotationsoptionen an, sodass Sie die Proxys wechseln können, um eine Sperrung zu vermeiden.

Voraussetzungen

Um einen Proxy mit Axios und Node.js zu verwenden, müssen Node.js und npm (Node Package Manager) auf Ihrem Computer installiert sein. Falls noch nicht geschehen, können Sie diese von der Node.js-Website herunterladen und installieren.

Sobald Sie Node.js und npm installiert haben, öffnen Sie das Terminal, erstellen Sie einen neuen Ordner für das Projekt und führen Sie den Befehl `npm init` aus. Befolgen Sie die Anweisungen und erstellen Sie eine Basis-Datei „package.json“.

Installieren Sie Axios mit diesem Befehl:

npm install axios

Eine HTTP-Anfrage stellen

Lassen Sie uns unsere erste Anfrage mit Axios erstellen. Wir senden eine GET-Anfrage an den ipify-Endpunkt. Die Anfrage gibt unsere IP-Adresse zurück.

Erstellen Sie eine Datei „index.js“ und fügen Sie den folgenden Code ein:

// Import axios

const axios = require('axios');

(async () => {

    // For storing the response

    let res

    try {

   	 // Make a GET request with Axios

   	 res = await axios.get('https://api.ipify.org?format=json')

   	 // Log the response data

   	 console.log(res.data)

    } catch(err) {

   	 // Log the error

   	 console.log(err)

    }

    // Exit the process

    process.exit()

})()

Wir beginnen mit dem Import der Axios-Bibliothek und verwenden die `get`-Methode, um eine Anfrage an den Endpunkt `api.ipify.org` zu senden.

Sie können den Code mit dem Befehl `node index.js` im Terminal ausführen. Die Ausgabe sollte Ihre IP-Adresse anzeigen. Überprüfen Sie das Ergebnis, indem Sie die URL in Ihrem Browser aufrufen.

Verwendung von Proxys mit Axios

Bevor wir Code schreiben, rufe die Website „Free Proxy List“ auf und wähle einen Proxy aus, der deinem Standort am nächsten liegt. In meinem Fall wähle ich einen Proxy für Deutschland.

Die `get`-Methode von Axios unterstützt einen zweiten Parameter namens „options“. Innerhalb dieses Parameters können wir die Proxy-Details definieren.

Unsere vorherige GET-Anfrage mit einem Proxy sieht wie folgt aus:

res = await axios.get('https://api.ipify.org?format=json', {

    proxy: {

        protocol: 'http',

        host: '217.6.28.219',

        port: 80

    }

})

Wenn du den Code ausführst, wirst du feststellen, dass die zurückgegebene IP-Adresse sich von deiner eigenen unterscheidet. Das liegt daran, dass die Anfrage über einen Proxy-Server geleitet wird, wodurch deine IP-Adresse vor der Erkennung geschützt wird.

Wie sieht es mit der Authentifizierung aus?

Wenn du einen Premium-Proxy-Dienst abonnierst, erhältst du einen Benutzernamen und ein Passwort, die du in deiner Anwendung zur Authentifizierung verwenden kannst.

Das `proxy`-Objekt von Axios verfügt über eine „auth“-Eigenschaft, die Authentifizierungsdaten aufnehmen kann. Ein Beispiel für eine GET-Anfrage mit dieser Konfiguration würde wie folgt aussehen:

res = await axios.get('https://api.ipify.org?format=json', {

    proxy: {

        protocol: 'http',

        host: '217.6.28.219',

        port: 80,

        auth: {

            username: "PROVIDED_USER",

            password: "PROVIDED_PASSWORD"

        }

    }

})

Einrichten des Proxys als Umgebungsvariable

Eine alternative Möglichkeit, einen Proxy in Axios zu konfigurieren, besteht darin, die Umgebungsvariablen `http_proxy` oder `https_proxy` festzulegen. Mit dieser Methode können Sie die Konfiguration der Proxy-Details in Axios-Befehlen überspringen, da diese automatisch aus den Umgebungsvariablen abgerufen werden.

Aus Gründen der plattformübergreifenden Kompatibilität empfehle ich die Installation des Pakets `cross-env`, das einen export-ähnlichen Befehl für Windows implementiert.

Installieren Sie das Paket global mit diesem Befehl:

npm install -g cross-env

Lassen Sie uns den `axios.get`-Code bereinigen und auf die ursprüngliche Version zurücksetzen. Der Code sollte wie folgt aussehen:

res = await axios.get('https://api.ipify.org?format=json')

Anstatt den Code einfach mit `node index.js` auszuführen, fügen wir die Proxy-URL wie folgt vor dem Befehl ein:

cross-env https_proxy=http://217.6.28.219:80/ node index.js

Die Ausgabe des Skripts sollte die IP-Adresse des Proxys sein, nicht Ihre eigene. Um dies zu überprüfen, können Sie die ipify-URL in Ihrem Browser aufrufen.

Proxy-Rotation

Das Rotieren von Proxys ist eine gute Idee, da es hilft, eine Erkennung zu vermeiden und verhindert, dass Websites Ihre IP-Adresse blockieren. Websites können IP-Adressen nachverfolgen und blockieren, die innerhalb kurzer Zeit zu viele Anfragen stellen oder mit Scraping-Aktivitäten in Verbindung stehen.

Wir können die Website „Free Proxy List“ nutzen, um eine Liste mit Proxys zusammenzustellen, die wir bei jeder `axios`-Anfrage rotieren können.

Bitte beachte, dass die Liste der Proxys, die du auf der Website findest, von der Liste abweichen kann, die ich zusammengestellt habe. Die von mir erstellte Liste sieht wie folgt aus:

const proxiesList = [

    {

   	 protocol: 'http',

   	 host: '217.6.28.219',

   	 port: 80

    },

    {

   	 protocol: 'http',

   	 host: '103.21.244.152',

   	 port: 80

    },

    {

   	 protocol: 'http',

   	 host: '45.131.4.28',

   	 port: 80

    }

];

Okay, fügen wir also die `proxy`-Eigenschaft wieder in die `axios`-Konfiguration ein. Aber anstatt nur einen Proxy zu verwenden, wählen wir zufällig einen aus unserer Proxy-Liste aus. Der Code sieht wie folgt aus:

res = await axios.get('https://api.ipify.org?format=json', {

    proxy: proxiesList[Math.floor(Math.random() * proxiesList.length)]

})

Dies ist der Inhalt der Datei index.js:

// Import axios

const axios = require('axios');

const proxiesList = [

    {

   	 protocol: 'http',

   	 host: '217.6.28.219',

   	 port: 80

    },

    {

   	 protocol: 'http',

   	 host: '172.67.180.244',

   	 port: 80

    },

    {

   	 protocol: 'http',

   	 host: '45.131.4.28',

   	 port: 80

    }

];

(async () => {

    // For storing the response

    let res

    try {

   	 // Make a GET request with Axios

   	 res = await axios.get('https://api.ipify.org?format=json', {

   		 proxy: proxiesList[Math.floor(Math.random() * proxiesList.length)]

   	 })

   	 // Log the response data

   	 console.log(res.data)

    } catch(err) {

   	 // Log the error

   	 console.log(err)

    }

    // Exit the process

    process.exit()

})()

Verwendung von WebScrapingAPI-Proxys

Die Verwendung von Premium-Proxys von einem Dienst wie WebScrapingAPI ist besser als die Verwendung von kostenlosen Proxys, da sie zuverlässiger, schneller und sicherer sind. Premium-Proxys werden seltener von Websites blockiert und weisen eine geringere Latenz auf.

Im Gegensatz dazu können kostenlose Proxys langsam und unzuverlässig sein, Malware enthalten und werden häufig von Websites blockiert.

Möchtest du WebScrapingAPI ausprobieren? Kein Problem, melde dich einfach für unsere 14-tägige kostenlose Testversion an und du erhältst Zugriff auf alle tollen Funktionen sowie 5.000 Credits zum Ausprobieren.

Sobald du ein Konto hast, gehe zum API Playground und wähle im Abschnitt „Code Samples“ die Registerkarte „Proxy Mode“ aus

Verwenden wir die Proxy-URL in unserem Code. Die axios-GET-Anfrage sieht wie folgt aus:

res = await axios.get('https://api.ipify.org?format=json', {

    proxy: {

        host: 'proxy.webscrapingapi.com',

        port: 80,

        auth: {

            username: 'webscrapingapi.render_js=0.device=desktop.proxy_type=datacenter',

            password: '[YOUR_API_KEY]'

        }

    }

})

Mit der Eigenschaft `username` kannst du bestimmte API-Funktionen aktivieren oder deaktivieren. Beachte, dass du deinen API-Schlüssel auch in der Eigenschaft `password` festlegen musst. Die vollständige Dokumentation findest du hier.

Jedes Mal, wenn Sie diesen Code ausführen, erhalten Sie eine andere IP-Adresse, da WebScrapingAPI die IPs bei jeder Anfrage wechselt. Mehr über diese Funktion erfahren Sie in der Dokumentation zum Proxy-Modus.

Darüber hinaus haben Sie die Möglichkeit, zwischen Datencenter- und Residential-Proxys zu wechseln. Weitere Informationen zu den verschiedenen Arten von Proxys, die wir anbieten, finden Sie in der Proxy-Dokumentation.

Fazit

Die Verwendung eines Proxys ist ein wichtiger Aspekt beim Web-Scraping, da Sie damit Ihre IP-Adresse verbergen und auf gesperrte Websites zugreifen können. Axios ist eine leistungsstarke Bibliothek zum Scrapen von Daten, und in Kombination mit einem zuverlässigen Proxy können Sie eine effiziente und schnelle Datenextraktion erzielen.

Durch die Nutzung eines Premium-Proxy-Dienstes wie WebScrapingAPI erhalten Sie Zugriff auf eine Vielzahl von Funktionen, darunter IP-Rotation und die Möglichkeit, zwischen Rechenzentrums- und Residential-Proxys zu wechseln.

Wir hoffen, dass dieser Artikel Ihnen ein nützliches Verständnis für die Verwendung eines Proxys mit Axios und Node.js vermittelt hat und Ihnen gezeigt hat, wie dies für Ihre Scraping-Anforderungen von Vorteil sein kann. Melden Sie sich gerne für unsere 14-tägige kostenlose Testversion an, um unseren Dienst zu testen und alle Funktionen und Möglichkeiten zu erkunden.

Über den Autor
Suciu Dan, Mitbegründer @ WebScrapingAPI
Suciu DanMitbegründer

Suciu Dan ist Mitbegründer von WebScrapingAPI und verfasst praxisorientierte, auf Entwickler zugeschnittene Anleitungen zu den Themen Web-Scraping mit Python, Web-Scraping mit Ruby und Proxy-Infrastruktur.

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.