Entsperren Sie Websites und schützen Sie Ihre Identität mit Proxies und Axios Node.js
Suciu Dan am 25. April 2023

Was ist Axios?
Axios ist eine beliebte, auf Versprechen basierende HTTP-Client-Bibliothek, mit der Sie HTTP-Anfragen in Node.js stellen können. Sie ist leichtgewichtig und einfach zu verwenden, was sie zu einer guten Wahl für Web-Scraping-Projekte macht.
Axios unterstützt eine Vielzahl von Funktionen, wie Proxies, automatische Konvertierung von JSON-Daten, Unterstützung für das Abbrechen von Anfragen und Unterstützung für Interceptoren, mit denen Sie Aufgaben wie Authentifizierung und Fehlerbehandlung erledigen können.
Was sind Proxys?
Proxys, auch Proxy-Server genannt, fungieren als Vermittler zwischen einem Client (z. B. einem Webbrowser oder einem Scraper) und einem Zielserver (z. B. einer Website).
Der Proxy empfängt Anfragen vom Client und leitet sie an den Zielserver weiter. Der Zielserver sendet dann die Antwort 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, so dass die Website, die Sie scrapen, die Anfrage nicht entdeckt und blockiert. Außerdem kann die Verwendung mehrerer Proxys dazu beitragen, eine Erkennung und Blockierung zu vermeiden.
Einige Proxy-Anbieter bieten die Möglichkeit der IP-Rotation, so dass Sie die Proxys wechseln können, um nicht blockiert zu werden.
Voraussetzungen
Um einen Proxy mit Axios und Node.js zu verwenden, müssen Sie Node.js und npm (Node Package Manager) auf Ihrem Computer installiert haben. Wenn Sie dies noch nicht getan haben, können Sie sie von der Node.js-Website herunterladen und installieren.
Sobald Sie Node.js und npm installiert haben, öffnen Sie das Terminal, erstellen einen neuen Ordner für das Projekt und führen den Befehl "npm init" aus. Folgen Sie den Anweisungen und erstellen Sie eine Basis package.json-Datei.
Installieren Sie axios mit diesem Befehl:
npm axios installieren
Eine HTTP-Anfrage stellen
Lassen Sie uns unsere erste Anfrage mit Axios stellen. Wir werden eine GET-Anfrage an den ipify-Endpunkt senden. Die Anfrage wird unsere IP-Adresse zurückgeben.
Erstellen Sie eine index.js-Datei 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. In der Ausgabe sollte Ihre IP-Adresse angezeigt werden. Überprüfen Sie das Ergebnis, indem Sie die URL in Ihrem Browser aufrufen.
Verwendung von Proxies mit Axios
Bevor wir mit dem Schreiben von Code beginnen, besuchen Sie die Website Free Proxy List und wählen Sie einen Proxy aus, der Ihrem Standort am nächsten ist. In meinem Fall werde ich einen Proxy für Deutschland auswählen.
Die Methode `get` von axios unterstützt einen zweiten Parameter namens options. Innerhalb dieses Parameters können wir die Details des Proxys definieren.
Unsere vorherige GET-Anfrage mit einem Proxy sieht folgendermaßen aus:
res = await axios.get('https://api.ipify.org?format=json', {
proxy: {
protocol: 'http',
host: '217.6.28.219',
port: 80
}
})
Wenn Sie den Code ausführen, werden Sie feststellen, dass die zurückgegebene IP-Adresse nicht mit Ihrer eigenen übereinstimmt. Das liegt daran, dass die Anfrage über einen Proxyserver geleitet wird, wodurch Ihre IP-Adresse nicht erkannt wird.
Wie sieht es mit der Authentifizierung aus?
Wenn Sie einen Premium-Proxy-Dienst abonnieren, erhalten Sie einen Benutzernamen und ein Passwort, die Sie in Ihrer Anwendung zur Authentifizierung verwenden können.
Das "Proxy"-Objekt von Axios hat eine "auth"-Eigenschaft, die Authentifizierungsnachweise empfangen 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"
}
}
})
Einstellen des Proxys als Umgebungsvariable
Eine alternative Möglichkeit, einen Proxy in Axios zu konfigurieren, ist das Setzen der Umgebungsvariablen `http_proxy` oder `https_proxy`. Mit dieser Methode können Sie die Konfiguration von Proxy-Details innerhalb von Axios-Befehlen überspringen, da sie automatisch von den Umgebungsvariablen bezogen werden.
Für die plattformübergreifende 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
Bereinigen wir den "axios.get"-Code und bringen ihn auf den Stand der ursprünglichen Version. 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 und nicht Ihre eigene. Um dies zu überprüfen, können Sie die ipify-URL in Ihrem Browser aufrufen.
Rotierende Proxys
Das Rotieren von Proxys ist eine gute Idee, weil es hilft, eine Entdeckung zu vermeiden und verhindert, dass Websites Ihre IP-Adresse blockieren. Websites können IP-Adressen, die in kurzer Zeit zu viele Anfragen stellen oder die mit Scraping-Aktivitäten in Verbindung gebracht werden, verfolgen und blockieren.
Wir können die Free Proxy List Website nutzen, um eine Liste mit Proxys zu erstellen, die wir bei jeder `axios`-Anfrage wechseln können.
Bitte beachten Sie, dass die Liste der Proxys, die Sie auf der Website finden, von der Liste, die ich zusammengestellt habe, abweichen kann. Die Liste, die ich erstellt habe, 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
}
];
Also gut, fügen wir die Eigenschaft `proxy` wieder in die `axios`-Konfiguration ein. Aber anstatt nur einen Proxy zu verwenden, werden wir einen zufällig aus unserer Liste von Proxies auswählen. Der Code wird wie folgt aussehen:
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 Proxies
Die Verwendung von Premium-Proxys von einem Dienst wie WebScrapingAPI ist besser als die Verwendung von kostenlosen Proxys, da sie zuverlässiger und schneller sind und eine bessere Sicherheit bieten. Bei Premium-Proxys ist die Wahrscheinlichkeit geringer, dass sie von Websites blockiert werden, und sie haben eine geringere Latenz.
Im Gegensatz dazu können kostenlose Proxys langsam und unzuverlässig sein, Malware enthalten und dazu neigen, von Websites blockiert zu werden.
Möchten Sie WebScrapingAPI ausprobieren? Kein Problem, melden Sie sich einfach für unsere 14-tägige kostenlose Testversion an und Sie erhalten Zugang zu allen coolen Funktionen und sogar 5.000 Credits, um damit herumzuspielen.
Sobald Sie ein Konto haben, gehen Sie zum API Playground und wählen Sie die Registerkarte Proxy Mode im Abschnitt Code Samples

Lassen Sie uns die Proxy-URL in unserem Code verwenden. Die axios GET-Anfrage wird wie folgt aussehen:
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" können Sie bestimmte API-Funktionen aktivieren oder deaktivieren. Denken Sie daran, dass Sie auch Ihren API-Schlüssel in der Eigenschaft "Passwort" festlegen müssen. Sie können die vollständige Dokumentation hier einsehen.
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.
Außerdem haben Sie die Möglichkeit, zwischen Proxies für Rechenzentren und Proxies für Privatanwender zu wechseln. Weitere Informationen über die verschiedenen Arten von Proxys, die wir anbieten, finden Sie in der Proxy-Dokumentation.
Schlussfolgerung
Die Verwendung eines Proxys ist ein wichtiger Aspekt beim Web Scraping, da Sie damit Ihre IP-Adresse verbergen und auf blockierte Websites zugreifen können. Axios ist eine leistungsstarke Bibliothek für das Scraping von Daten, und in Kombination mit einem zuverlässigen Proxy können Sie eine effiziente und schnelle Datenextraktion erreichen.
Wenn Sie einen Premium-Proxy-Dienst wie WebScrapingAPI nutzen, haben Sie Zugang zu einer breiten Palette von Funktionen, einschließlich IP-Rotation und der Möglichkeit, zwischen Proxys für Rechenzentren und Privatanwender 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 wie es für Ihre Scraping-Anforderungen von Vorteil sein kann. Melden Sie sich für unsere 14-tägige kostenlose Testversion an, um unseren Service zu testen und alle Features und Funktionalitäten zu erkunden.
Nachrichten und Aktualisierungen
Bleiben Sie auf dem Laufenden mit den neuesten Web Scraping-Anleitungen und Nachrichten, indem Sie unseren Newsletter abonnieren.
We care about the protection of your data. Read our <l>Privacy Policy</l>.Privacy Policy.

Ähnliche Artikel

Entdecken Sie die Komplexität des Scrapens von Amazon-Produktdaten mit unserem ausführlichen Leitfaden. Von Best Practices und Tools wie der Amazon Scraper API bis hin zu rechtlichen Aspekten erfahren Sie, wie Sie Herausforderungen meistern, CAPTCHAs umgehen und effizient wertvolle Erkenntnisse gewinnen.


Erfahren Sie, welcher Browser am besten geeignet ist, um Cloudflare-Erkennungssysteme beim Web-Scraping mit Selenium zu umgehen.


Lernen Sie, wie man HTML-Tabellen mit Golang für eine leistungsstarke Datenextraktion scrapen kann. Erforschen Sie die Struktur von HTML-Tabellen und erstellen Sie einen Web-Scraper mit der Einfachheit, Gleichzeitigkeit und der robusten Standardbibliothek von Golang.
