Heim BlogWeb-Scraping So verwenden Sie cURL mit einem Proxy

So verwenden Sie cURL mit einem Proxy

von Kadek

cURL ist ein kostenloses Befehlszeilentool zum Senden und Empfangen von Daten über ein Netzwerk mithilfe verschiedener Protokolle. Es wird verwendet, um HTTP-Anfragen auszuführen, Dateien über FTP abzurufen, Dateien von Websites herunterzuladen und die Protokolle SCP, SFTP und LDAP zu verwenden.

cURL ist ein leistungsstarkes Tool, aber es ist noch leistungsfähiger, wenn es mit Proxyservern verwendet wird. Proxys bieten mehr Sicherheit, Anonymität und Flexibilität. Sie sind für Webentwickler, Datenwissenschaftler und Netzwerkadministratoren von unschätzbarem Wert.

In diesem Artikel werden wir uns eingehend mit der Verwendung von cURL mit Proxyservern befassen. Wir decken alles ab, von der Installation von cURL auf verschiedenen Betriebssystemen bis hin zur Nutzung von Flags für erweiterte Anfragen. Darüber hinaus befassen wir uns mit der Einrichtung rotierender Proxys und der Optimierung Ihrer Befehle über Umgebungsvariablen, Aliase und Konfigurationsdateien.

cURL installieren

Die Installation von cURL unter Windows und Linux unterscheidet sich geringfügig, da die Betriebssysteme Pakete unterschiedlich verwalten. Schauen wir uns also nacheinander beide Optionen an.

cURL unter Windows installieren

Um cURL unter Windows zu installieren, gehen Sie zur offiziellen cURL-Website und laden Sie die *.exe-Datei herunter, die der Bit-Version Ihres Computers entspricht. Führen Sie es dann aus und installieren Sie es als einfaches Installationspaket.

Oder Sie können das Dienstprogramm Chocolatey (Choco) verwenden, um Curl automatisch zu installieren. Wenn Sie diese Methode verwenden möchten, aber nicht über Choco verfügen, gehen Sie zur PowerShell (als Administrator ausführen). Stellen Sie dann sicher, dass die Skripterstellung in PowerShell aktiviert ist:

Get-ExecutionPolicy

Wenn der Befehl „Eingeschränkt“ zurückgibt, ist die Skriptausführung nicht zulässig. Um Chocolatey zu installieren, müssen Sie die Skriptausführung zulassen. Führen Sie den folgenden Befehl aus:

Set-ExecutionPolicy AllSigned

Bestätigen Sie den Befehl und warten Sie, bis die Änderungen an den Einstellungen abgeschlossen sind. Dann laden Sie Chocolatey herunter und installieren Sie es:

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

Anschließend können Sie den Befehl „choco install curl“ verwenden:


Power Shell

Jetzt können Sie cURL an der Eingabeaufforderung verwenden.

cURL unter Linux installieren

Für Linux ist die Installation umfangreicher, aber nicht komplizierter. Sie können die *tar.gz-Datei auch von der offiziellen Website herunterladen und installieren, wir machen jedoch das Gegenteil und verwenden das Terminal.

Es ist auch erwähnenswert, dass verschiedene Linux-Systeme unterschiedliche Befehle zum Installieren von Paketen verwenden. Wenn Sie beispielsweise Ubuntu oder Debian verwenden, können Sie diesen Befehl ausführen:

sudo apt-get install curl

Und für CentOS können Sie das Paket wie folgt installieren:

sudo yum install curl

Nachdem Sie den entsprechenden Befehl ausgeführt haben, wird cURL auf Ihrem Linux-System installiert und ist am Terminal verfügbar.

Überprüfung der cURL-Installation

Wenn Sie cURL erfolgreich installiert haben, können Sie dies überprüfen, indem Sie einen Befehl ausführen, der nach der cURL-Version fragt. Dies hilft bei der Überprüfung, ob es ordnungsgemäß installiert ist.

curl --version

Wenn Sie die Curl-Version haben, haben Sie alles richtig gemacht. Wenn Sie eine Fehlermeldung erhalten, kehren Sie zum vorherigen Schritt zurück und versuchen Sie es erneut.

Grundlegende cURL-Syntax

Bevor wir Proxys verwenden, werfen wir einen Blick auf die grundlegende cURL-Syntax. Wie bereits erwähnt, ermöglicht es Ihnen, Daten aus verschiedenen Ressourcen abzurufen und Parameter, Header und Cookies zu senden.

GET- und POST-Anfragen mit cURL

Einige der einfachsten Beispiele für die Verwendung von cURL sind GET- und POST-Anfragen. Schauen wir uns eine einfache GET-Anfrage an:

curl -X GET https://www.example.com

Machen wir es komplizierter und stellen Sie eine GET-Anfrage an unsere Google SERP API. Melden Sie sich dazu bei Scrape-It.Cloud an und holen Sie sich Ihren API-Schlüssel. Wir werden es im Anfrageheader angeben.

curl -X GET "https://api.scrape-it.cloud/scrape/google?location=Austin%2CTexas%2CUnited+States&q=Coffee&domain=google.com&gl=us&hl=en&deviceType=desktop" -H "x-api-key: PUT-YOUR-API-KEY"

Wir haben in dieser Abfrage auch Standort, Gerät, Sprache, Domäne, Land und Schlüsselwort angegeben. Wenn wir eine Abfrage ausführen, erhalten wir eine JSON-Antwort, die Daten von Google SERP enthält.

Schauen wir uns nun eine Beispiel-POST-Anfrage an. Die Basisanfrage enthält Parameter, die im Hauptteil der Anfrage übergeben werden sollen, zum Beispiel:

curl -X POST -d "param1=value1&param2=value2" https://www.example.com

Nehmen wir als Beispiel aus der Praxis ein komplizierteres Problem. Um auf unsere Web Scraping API und einige andere APIs zuzugreifen, müssen wir Parameter im JSON-Format im Anfragetext übergeben. Außerdem müssen die Zeichen { und } im Hauptteil der JSON-Daten in der Windows-Befehlszeile mit Escapezeichen versehen werden. Lassen Sie uns den Inhalt der Amazon-Seite mithilfe unserer Web Scraping API abrufen.

curl -X POST -H "x-api-key: PUT-YOUR-API-KEY" -H "Content-Type: application/json" -d "{\"url\": \"https://www.amazon.com/Tablets\",\"proxy_type\": \"residential\",\"proxy_country\": \"US\"}" https://api.scrape-it.cloud/scrape

Als Ergebnis haben wir von unserer Web-Scraping-API eine JSON-Antwort mit dem Inhalt der Amazon-Seite erhalten.

cURL-Flags

Wie Sie vielleicht bemerkt haben, haben wir in früheren Beispielen bereits Flags verwendet. Wir haben das Flag -X verwendet, um die HTTP-Methode anzugeben, das Flag -H, um die Anforderungsheader festzulegen, und das Flag -d, um Daten in der Anforderung zu übergeben. In cURL gibt es auch andere Flags, die Sie verwenden können, wie zum Beispiel:

  1. -o, --output. Gibt die Datei an, in der das Anforderungsergebnis gespeichert wird.
  2. -i, --include. Fügt der Ausgabe Antwortheader hinzu.
  3. -v, --verbose. Wechselt in den detaillierten Ausgabemodus.
  4. -A, --user-agent. Legt die User-Agent-Zeichenfolge fest.
  5. -L, --location. Folgt Weiterleitungen automatisch.
  6. –cookie. Setzt Cookies für die Anfrage.
  7. -x, --proxy. Gibt die Adresse und den Port des Proxyservers an.
  8. --proxy-user. Legt den Benutzernamen für die Proxyserver-Authentifizierung fest.
  9. --proxy-ntlm. Verwendet NTLM-Authentifizierung für den Proxyserver.
  10. --proxy-basic. Verwendet die Basisauthentifizierung für den Proxyserver.

Insgesamt verfügt cURL über etwa 300 verschiedene Flags. Um alle verfügbaren Flags und Optionen für cURL anzuzeigen, können Sie den folgenden Befehl verwenden:

curl --help

Dieser Befehl zeigt eine Liste aller Flags und ihrer Beschreibungen an, sodass Sie alle mit cURL verfügbaren Optionen sehen können.

Angeben von Proxys in cURL

Mit cURL können Sie Proxys für die Protokolle HTTP/HTTPS und SOCKS angeben, was für verschiedene Netzwerk- und Sicherheitszwecke hilfreich sein kann. Darüber hinaus können Sie über rotierende Proxys eine Verbindung zu Servern herstellen.

Zuvor haben wir Proxys besprochen, einschließlich der besten Quellen für kostenlose und kostenpflichtige Optionen. Dieses Mal konzentrieren wir uns also auf die verfügbaren Proxy-Typen, darauf, was bei der Auswahl eines Proxy-Servers zu beachten ist und wo man Proxys bekommt.

HTTP/HTTPS-Proxys

Um einen HTTP- oder HTTPS-Proxy mit cURL zu verwenden, können Sie das Flag -x oder –proxy gefolgt von der Adresse und dem Port des Proxys verwenden. Hier ist die Standard-Proxy-Protokollsyntax:

curl -x proxy_address:proxy_port URL

Wenn Ihr HTTP-Proxy beispielsweise unter 192.168.1.1 auf Port 8080 läuft und Sie auf eine Website zugreifen möchten:

curl -x 192.168.1.1:8080 https://example.com

Dadurch können Sie über einen Proxy eine Verbindung zu example.com herstellen. Wenn Sie überprüfen möchten, ob der Proxy funktioniert, können Sie eine Verbindung zu https://httpbin.org/ip herstellen, das Ihre IP-Adresse als Antwort zurückgibt:

curl -x 195.154.243.38:8080 https://httpbin.org/ip

Als Ergebnis sollten Sie etwa Folgendes erhalten:

{
    "origin": "195.154.243.38"
}

Schauen wir uns nun den SOCKS-Proxy an.

SOCKS-Proxys

cURL unterstützt auch SOCKS-Proxys, die häufig für komplexere Netzwerkszenarien verwendet werden. Um einen SOCKS-Proxy zu verwenden, können Sie das Flag –socks5 oder –socks4 gefolgt von der Adresse und dem Port des Proxys verwenden:

curl --socks5 proxy_address:proxy_port URL

Wenn Sie beispielsweise einen SOCKS5-Proxy unter 192.168.1.2 auf Port 1080 haben:

curl --socks5 195.154.243.39:1080 https://httpbin.org/ip

Die Funktionsweise von cURL mit SOCKS-Proxys ähnelt der Funktionsweise mit HTTP-Proxys.

Verwendung eines rotierenden Proxys mit cURL

Durch die Verwendung eines rotierenden Proxys mit cURL können Sie HTTP-Anfragen über einen Pool verschiedener Proxyserver stellen, was Aufgaben wie Web Scraping, Datenerfassung oder die Gewährleistung der Anonymität erleichtern kann. Rotierende Proxys helfen dabei, Ihre Anfragen auf mehrere IP-Adressen zu verteilen, wodurch IP-Verbote oder Ratenbegrenzungen von Websites verhindert werden können.

Um einen rotierenden Proxy mit cURL nutzen zu können, müssen Sie zunächst Zugriff auf einen geeigneten Proxy-Dienst erhalten. Im Internet sind verschiedene Anbieter verfügbar, die rotierende Proxy-Dienste anbieten. Abhängig vom Proxy-Dienst müssen Sie sich möglicherweise mit einem API-Schlüssel oder Benutzernamen und Passwort authentifizieren, um auf den rotierenden Proxy-Pool zuzugreifen.

Anstatt einen einzelnen Proxyserver anzugeben, rufen Sie einen Proxy aus dem Pool ab, der von Ihrem rotierenden Proxydienst bereitgestellt wird. Die Vorgehensweise hierfür kann je nach verwendetem Dienst unterschiedlich sein. Sie sollten eine API-Anfrage stellen, um einen Proxy abzurufen, oder eine bestimmte vom Dienst bereitgestellte URL verwenden.

Sobald Sie einen Proxy aus dem Pool haben, können Sie ihn wie jeden anderen Proxy mit „cURL“ verwenden. Fügen Sie das Flag „-x“ oder „–proxy“ mit der Proxy-Adresse ein.

Proxy-Authentifizierung mit cURL

Die Proxy-Authentifizierung mit cURL ist erforderlich, wenn Sie auf einen Proxy-Server zugreifen, der eine Authentifizierung erfordert, bevor er Ihre Anforderungen passieren lässt. Abhängig von der Art des verwendeten Proxyservers können Sie sich mit den Authentifizierungsmethoden Basic, Digest oder NTLM authentifizieren.

Wir haben zuvor Flags für diese Authentifizierungsmethoden angegeben. Wenn Sie eine Anfrage mit einer primären Authentifizierungsmethode stellen möchten, verwenden Sie dieses Beispiel:

curl --proxy-user username:password -x proxy_address https://httpbin.org/ip

Die verbleibenden beiden Authentifizierungsmethoden werden identisch durchgeführt, indem das Flag –proxy-digest für die Digest-Proxy-Authentifizierung und –proxy-ntlm für die NTLM-Proxy-Authentifizierung hinzugefügt wird.

Erweiterte Proxy-Optionen

Wenn Sie einen Proxy verwenden, sollten Sie zusätzliche Details wie zusätzliche Header angeben oder gar keinen Proxy für die direkte Verbindung verwenden. Mal sehen, wie das geht.

Die Verwendung von Headern mit Proxys ist ein unkomplizierter Vorgang, ähnlich wie in den früheren Beispielen. Hier sollten Sie jedoch den Proxy angeben und dann die Header hinzufügen.

curl -x proxy_address -H "Header-Name: Header-Value" https://httpbin.org/ip

Dieser cURL-Befehl legt in Ihrer Anfrage an den Proxyserver einen benutzerdefinierten Header namens „Header-Name“ mit dem Wert „Header-Value“ fest.

cURL so einrichten, dass Proxy-Einstellungen ignoriert werden

Manchmal müssen Sie möglicherweise systemweite Proxy-Einstellungen ignorieren. In solchen Fällen können Sie das Flag –noproxy verwenden, gefolgt von einer durch Kommas getrennten Liste von Domänen, die den Proxy umgehen sollen:

curl --noproxy httpbin.org https://httpbin.org/ip

In diesem Beispiel stellt cURL eine direkte Verbindung zu „httpbin.org“ her, ohne den konfigurierten Proxy zu durchlaufen.

Umgebungsvariablen für cURL-Proxy

Sie können Umgebungsvariablen verwenden, um Ihre Arbeit mit cURL zu optimieren. Dadurch können Sie später eine Reihe von Regeln erstellen, indem Sie einfach auf eine Variable verweisen.

Lassen Sie uns Variablen für http- und https-Proxys festlegen, damit wir sie nicht jedes Mal manuell festlegen müssen. Wenn Sie Windows verwenden, benötigen Sie diese Befehle:

set http_proxy="http://<username>:<password>@proxy.example.com:8080"
set https_proxy="http://<username>:<password>@proxy.example.com:8080"

Und wenn Sie Linux verwenden, diese:

export http_proxy="http://<username>:<password>@proxy.example.com:8080"
export https_proxy="http://<username>:<password>@proxy.example.com:8080"

Oder Sie können eine Liste von Domänen oder IP-Adressen angeben, auf die nicht über den Proxy zugegriffen werden soll:

set no_proxy="localhost,127.0.0.1,httpbin.org"

Später können Sie problemlos auf diese Variable zugreifen und ihre Parameter in Ihren Abfragen verwenden:

curl -x $https_proxy https://httpbin.org/ip
curl -x $no_proxy https://httpbin.org/ip

Durch das Festlegen dieser Umgebungsvariablen können Sie die Proxy-Konfiguration für alle Ihre cURL-Anfragen optimieren. Und wenn Sie einen Fehler machen und den Wert einer Variablen überschreiben möchten, können Sie ihn einfach neu setzen. Außerdem können Sie weiterhin alle Parameter manuell einstellen.

Alias ​​in cURL verwenden

Die Verwendung von Aliasen in cURL kann eine bequeme Möglichkeit sein, komplexe oder häufig verwendete cURL-Befehle durch die Erstellung benutzerdefinierter Verknüpfungen oder Abkürzungen zu vereinfachen. Mithilfe von Aliasen können Sie Verknüpfungen definieren, die länger auf cURL-Befehle erweitert werden, sodass Sie sich keine langen Befehlszeilen merken oder diese eingeben müssen.

Um einen Alias ​​zu erstellen, definieren Sie ihn normalerweise in der Konfigurationsdatei Ihrer Shell (z. B. .bashrc-Datei für Bash oder .zshrc für Zsh). Normalerweise befindet sich die erforderliche Datei in Windows im Ordner C:\Benutzer\Benutzername. Sie können ein neues erstellen, wenn Sie es dort nicht finden.

Öffnen Sie die Konfigurationsdatei in einem Texteditor und fügen Sie Ihre Aliasdefinition hinzu. Um beispielsweise die Verwendung von Curl mit einem Proxy noch einfacher zu machen, können wir den folgenden Alias ​​verwenden:

alias mycurl="curl --proxy-user username:password -x proxy_address"

Oder verwenden Sie zuvor erstellte Umgebungsvariablen:

alias myproxy='curl --proxy $https_proxy'

Nachdem Sie den Alias ​​zu Ihrer Konfigurationsdatei hinzugefügt haben, müssen Sie Ihre Shell neu laden oder eine neue öffnen, damit der Alias ​​wirksam wird. Dann können Sie den soeben erstellten Befehl verwenden:

mycurl https://httpbin.org/ip

Wie Sie sehen, kann die Verwendung eines Alias ​​die Verwendung von cURL vereinfachen.

Verwenden einer .curlrc-Datei

Mithilfe einer .curlrc-Datei können Sie standardmäßige cURL-Optionen und -Konfigurationen speichern. Diese Optionen und Konfigurationen werden jedes Mal automatisch gelesen und angewendet, wenn Sie einen cURL-Befehl ausführen. Dies kann beim Festlegen globaler Optionen, Header oder anderer Einstellungen nützlich sein und erspart Ihnen die wiederholte Angabe dieser Optionen in jedem cURL-Befehl.

Sie können eine .curlrc-Datei im Home-Verzeichnis Ihres Benutzers oder dort, wo sich Ihre cURL-Befehle befinden, erstellen. Um eine globale .curlrc-Datei für alle Benutzer zu erstellen, platzieren Sie sie normalerweise im Home-Verzeichnis:

touch ~/.curlrc

Diese Datei kann auch mit einem Texteditor erstellt und bearbeitet werden. Innerhalb der .curlrc-Datei können cURL-Konfigurationsparameter Zeile für Zeile hinzugefügt werden. Sie können beispielsweise Standard-Header, Benutzeragenten oder Proxy-Einstellungen festlegen:

header = "Accept: application/json"
proxy = "http://proxy.example.com:8080"

Wenn Sie cURL verwenden, müssen Sie diese Parameter nicht angeben. Sie werden als Standard für jede cURL-Anfrage verwendet. Führen Sie einfach den Befehl aus:

curl https://httpbin.org/ip

Alle Einstellungen werden aus der cURL-Konfigurationsdatei abgerufen und die Anfrage wird über einen Proxy ausgeführt.

So umgehen Sie SSL-Zertifikatfehler bei Verwendung von Curl Proxy

Bei Verwendung eines Proxys können SSL-Zertifikatsfehler auftreten. Um diese Fehler zu umgehen und eine unsichere Verbindung herzustellen, können Sie die Option –insecure oder -k mit cURL verwenden:

curl --proxy http://proxy.example.com:8080 --insecure https://httpbin.org/ip

Diese Option wird jedoch nicht für Produktionsumgebungen empfohlen, da sie die SSL-Zertifikatsvalidierung nicht besteht und das Schutzniveau verringert.

Fazit und Erkenntnisse

cURL ist ein leistungsstarkes Befehlszeilentool, mit dem Sie mit Proxyservern arbeiten und HTTP-Anfragen stellen können. Dies macht es zu einem unverzichtbaren Werkzeug für Web Scraping, Online-Anonymität und die Umgehung von Blockaden.

Mit diesem Tool können Sie Anfragen, Authentifizierung und vieles mehr anpassen, was es für die Arbeit mit Netzwerkressourcen und Webdiensten unverzichtbar macht. Darüber hinaus haben wir uns im heutigen Artikel mit Möglichkeiten befasst, die Verwendung von Proxys mit cURL zu optimieren und Umgebungsvariablen, Aliase und Konfigurationsdateien zu erstellen.

Related Posts

Hinterlasse einen Kommentar