Wenn Sie auf der Suche nach einem Tool sind, mit dem Sie gleichzeitig Proxys testen und Websites scrapen können, sind Sie hier genau richtig. cURL ist ein Kommandozeilen-Tool, mit dem Sie Proxys testen und einige grundlegende Web-Scraping-Maßnahmen durchführen können. Intuitiv und leicht zu erlernen, kann cURL unter anderem auch Anfragen senden, Cookies hinzufügen, Fehler beheben und eine Verbindung zu Proxys herstellen.
In dieser Schritt-für-Schritt-Anleitung erfahren Sie, was cURL ist, wie Sie die verschiedenen Befehle verwenden, wie Sie es für leichtes Web-Scraping einsetzen und wie Sie cURL mit Proxyservern verwenden. Die Anleitung kann etwas kompliziert werden, also stellen Sie sicher, dass Sie ein grundlegendes Verständnis davon haben, was ein Proxy ist, bevor Sie anfangen zu lesen. Die Kenntnis einiger Grundlagen des Web Scraping ist ebenfalls von Vorteil.
Inhaltsverzeichnis
- Was ist cURL?
- Wie installiert man cURL?
- Wie benutzt man cURL
- Wie man cURL mit Proxy-Servern benutzt
- 7 wichtige Tricks und Tipps
- Curl vs. Wget
- Fazit
Was ist cURL?
cURL, kurz für „client URL“, ist ein Befehlszeilen-Tool, das die Datenübertragung über das Internet erleichtert. Es umfasst die Befehlszeile curl.exe und eine plattformübergreifende Bibliothek namens libcurl, die den Datenaustausch zwischen Servern ermöglicht.
cURL ist mit verschiedenen modernen Betriebssystemen kompatibel, die Internetprotokolle verwenden, und läuft auf Geräten von Laptops bis hin zu Autos. Es unterstützt zahlreiche Internetprotokolle, wie z. B.:
- DICT
- FILE
- FTP
- FTPS
- GOPHER
- HTTP
- HTTPS
- IMAP
- IMAPS
- LDAP
- LDAPS
- MQTT
- POP3
- POP3S
- RTSP
- SCP
- SFTP
- SMB
- SMBS
- SMTP
- SMTPS
- TELNET
- TFTP
Eine große Gemeinschaft hat verschiedene Tools für cURL entwickelt, darunter curl-loader, ein Open-Source-Linux-Tool zum Testen der Softwareleistung. Curl-loader kann das Anwendungsverhalten zahlreicher FTP/FTPS- und HTTP/HTTPS-Clients emulieren. Ein einzelner curl-loader-Prozess kann 2.500 bis 100.000 virtuelle Clients unterstützen, wobei jeder Client eine eindeutige Quell-IP-Adresse hat.
Die Ursprünge von cURL
Die Geschichte von cURL reicht bis in die 1990er Jahre zurück, als Befehlszeilentools noch weit verbreitet waren. Im Jahr 1996 begann der schwedische Entwickler Daniel Stenberg mit der Arbeit an einem Skript für einen Internet-Relay-Chat (IRC), um Währungen für Chat-Teilnehmer umzurechnen. Dies brachte ihn dazu, an einem Tool namens httpget mitzuarbeiten, einer beliebten HTTP-Methode zur Übertragung von Daten über Server. Stenbergs Experimente resultierten in httpget 0.1, das aus „weniger als 300 Zeilen einer einzigen C-Datei“ bestand.
Monate später kamen File Transfer Protocols (FTP) auf, was Stenberg dazu veranlasste, FTP-Unterstützung in sein Tool einzubauen und es in urlget 2.0 umzubenennen. Am 30. März 1998 fügte er die Unterstützung für FTP-Uploads hinzu und benannte das Tool erneut in cURL 3.0 um.
Obwohl cURL großes Potenzial besaß, fand es zunächst wenig Beachtung. Im Jahr 1998, nach 15 Aktualisierungen und Neuveröffentlichungen, hatte cURL über 300 Downloads von Stenbergs Website. Noch im selben Jahr übernahm Red Hat Linux cURL, gefolgt von Debian im Jahr 1999 und Mac OS X 10.1 im August 2001. Seit 2001 ist cURL eine Standardfunktion in fast jeder Software, die mit dem Internet verbunden werden kann, einschließlich Windows 10, iOS- und Android-Geräte, Sony PS5, Nintendo Switch, Xbox und sogar Autos.
Warum cURL verwenden?
cURL ist bei Entwicklern aufgrund seiner Fähigkeit, komplexe Vorgänge effektiv zu handhaben, eine beliebte Wahl. Seine Vielseitigkeit, Skriptfähigkeit und die mitgelieferte Bibliothek ermöglichen eine nahtlose Integration mit anderen Programmen, ohne dass eigener HTTP-Parsing- und Netzwerkcode geschrieben werden muss.
cURL bietet zahlreiche Vorteile, wie z.B.:
- Endpunkt-Tests und Debugging-Funktionen
- Detaillierte Einblicke in gesendete und empfangene Daten
- Umfassende Fehlerprotokollierung
- Unterstützung für eine breite Palette von Protokollen
- Kompatibilität mit http2, Metalink, gzip, automatischer Dekompression und Content-Encoding
- Erweiterte Funktionen wie FTP-Upload, Cookies, Benutzerauthentifizierung, Proxy-Unterstützung, SSL-Verbindungen und mehr
- Automatische Protokollumschaltung, wenn das Standardprotokoll ausfällt
- Protokollabhängige URL-Syntax
- Funktionalität zur Ratenbegrenzung
- Möglichkeit zur Angabe von URL-Teilen oder mehreren URLs durch Verwendung von Klammern (z. B. https://google.{eins, zwei, drei}.com)
- Option zur Angabe einer beliebigen Anzahl von URLs über die Befehlszeile
Darüber hinaus schätzen Entwickler die standardmäßige SSL-Zertifikatsüberprüfung und HTTPS-Unterstützung von cURL. Wenn cURL eine Verbindung zu einem Server über HTTPS herstellt, wird das Zertifikat des Servers eingeholt und mit dem CA-Zertifikat verglichen, um die Authentizität des Servers sicherzustellen.
Wie installiert man cURL?
Lassen Sie uns herausfinden, wie Sie cURL auf Ihrem Computer installieren.
macOS
Auf macOS muss cURL nicht installiert werden, da es bereits in das Betriebssystem integriert ist. Sie können es nativ in der Terminal-Anwendung verwenden.
Windows
Ab Windows 10 enthält das Betriebssystem eine Kopie von cURL. Der Befehl cURL dient jedoch als Alias für den PowerShell-Befehl Invoke-WebRequest. Folglich wird beim Ausführen von cURL-Befehlen im Windows-Terminal Invoke-Request im Hintergrund initiiert. Um stattdessen cURL zu verwenden, ersetzen Sie „curl“ durch „curl.exe“, und PowerShell führt cURL anstelle von Invoke-Request aus.
Um beispielsweise die aktuelle Version von cURL zu überprüfen, die auf Ihrem Windows-Computer installiert ist, geben Sie den folgenden Befehl in das Terminal ein:
curl.exe --version
Die Ausgabe sollte wie folgt aussehen:
curl 7.83.1 (Windows) libcurl/7.83.1 Schannel
Freigabe-Datum: 2022-05-13
Protokolle: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
Features: AsynchDNS HSTS IPv6 Kerberos Largefile NTLM SPNEGO SSL SSPI UnixSockets
Wenn Sie mehr über cURL und Windows erfahren möchten, empfehlen wir Ihnen, sich dieses Video anzusehen. Sie erfahren, was cURL ist, wie man es unter Windows einsetzt und wie man API-Anfragen GET, POST, PUT, DELETE mit cURL ausführt.
Linux
Für Linux-Benutzer hängt der Installationsprozess für cURL von der jeweiligen Distribution ab. Beliebte Distributionen wie Ubuntu und Fedora haben cURL bereits vorinstalliert, so dass Sie es direkt im Terminal verwenden können.
Bei Distributionen, die cURL nicht standardmäßig enthalten, können Sie es über den Paketmanager Ihrer Distribution installieren. Auf Debian-basierten Betriebssystemen verwenden Sie beispielsweise den folgenden Befehl, um cURL zu installieren:
sudo apt-get install curl
Wie benutzt man cURL
Stellen Sie sicher, dass cURL auf Ihrem Gerät installiert ist. Vergewissern Sie sich vor der Verwendung von cURL, dass es auf Ihrem System installiert ist. Falls nicht, laden Sie es von der cURL-Website herunter.
A. Überprüfen der cURL-Installation auf Ihrem Gerät
Um zu überprüfen, ob cURL auf Ihrem System installiert ist, führen Sie folgende Schritte aus:
- Öffnen Sie auf einem Windows-PC oder MacBook die Befehlszeilenschnittstelle oder das PowerShell-Terminal.
- Geben Sie
'curl --version'
ein. - Drücken Sie die Eingabetaste.
Wenn cURL auf Ihrem Gerät installiert ist, erhalten Sie eine ähnliche Meldung wie diese:
curl --version
curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL
Veröffentlichungsdatum: 2017-11-14, Sicherheits-Patch: 2020-11-05
Protokolle: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL
OR
curl --version
curl 7.31.0 (x86_64-apple-darwin12.4.0) libcurl/7.31.0 OpenSSL/0.9.8x zlib/1.2.5
Protokolle: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: IPv6 Largefile NTLM NTLM_WB SSL libz
Wenn Sie eine andere Meldung sehen, bedeutet dies, dass cURL nicht auf Ihrem Gerät installiert ist und Sie es installieren müssen.
B. Bestimmen Sie die zu verwendende cURL-Syntax
Standardmäßig verwendet cURL das HTTP-Protokoll mit der folgenden Syntax: cURL [options] [URL]
Da cURL mehrere Protokolle unterstützt, kann die Syntax für jedes Protokoll leicht variieren. Hier sind einige Beispiele für cURL-Befehle für verschiedene Netzwerkprotokolle:
- File Transfer Protocol (FTP): cURL -T „ausgewählte Datei“ „ftp://[Ziel-Ziel]“
- Simple Mail Transfer Protocol (SMTP): cURL smtp://[smtp-server] –mail-from [Absender] –mail-rcpt [Empfänger] –upload-file [mail-content-file]
- Das Wörterbuch-Netzwerkprotokoll [DICT]: cURL „dict://dict.org/d:hi“
Es ist wichtig zu wissen, mit welchen Netzwerkprotokollen Sie arbeiten werden, um Ihre cURL-Erfahrung zu optimieren.
C. Verwenden Sie die geeignete cURL-Syntax für Ihre Ziele
Mit cURL können Sie verschiedene Aufgaben durchführen, wie das Herunter- und Hochladen von Dateien oder die Benutzerauthentifizierung. Jede Aufgabe erfordert eine andere cURL-Syntax, vor allem aufgrund der spezifischen Parameter und Netzwerkprotokolle.
Hier sind einige gängige Aufgaben und die entsprechenden cURL-Befehle:
- Herunterladen einer Datei: curl -o [Dateiname] [URL]
- Hochladen einer Datei über das FTP-Protokoll: curl -u [Benutzername:Passwort] -T [lokaler Dateipfad] ftp://[URL]
- Um HTTP-Header abzufragen: curl -I [URL]
Wie man cURL für Light Scraping verwendet
cURL kann für leichtes Web Scraping in Kombination mit einer Programmiersprache wie PHP verwendet werden.
Bevor Sie mit dem Scraping beginnen, sollten Sie die robots.txt-Datei der Ziel-Website überprüfen. Halten Sie sich an die Regeln, auch wenn sie unlogisch erscheinen, denn die Eigentümer der Website haben das Recht, Parameter und Einschränkungen festzulegen. Die Einhaltung der robots.txt-Datei beim Web-Crawling gilt als Standardverfahren, und die Nichteinhaltung kann zu rechtlichen Komplikationen führen.
Vor diesem Hintergrund finden Sie hier eine Anleitung zur Verwendung von cURL für leichtes Web Scraping.
Es gibt drei Hauptfunktionen, wenn Sie cURL zum Scrapen einer Webseite verwenden:
curl_init($url): Initialisiert die Sitzung
curl_exec(): Führt aus.
curl_close(): Schließt
Zusätzliche Optionen sind:
CURLOPT_URL: Gibt die URL an, die gecrawlt werden soll
CURLOPT_RETURNTRANSFER: Weist cURL an, die gecrawlte Seite als Variable zu speichern, so dass Sie die gewünschten Informationen aus der Seite extrahieren können.
Um mit dem Scraping zu beginnen, folgen Sie diesen Schritten:
- Wählen Sie eine Programmiersprache für das Scraping, z. B. PHP. In diesem Lernprogramm wird PHP verwendet.
- Create a new PHP file.
- Initialize the cURL handle using curl_init. $curl = curl_init
- Setzt CURLOPT_RETURNTRANSFER auf TRUE, was die übertragene Seite als String zurückgibt. This command tells cURL to store the scraped page as a variable rather than displaying the entire page by default:
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
- Initiieren Sie die Anfrage und führen Sie eine Fehlerprüfung durch: $page = curl_exec($curl);if(curl_errno($curl)) // prüfen Sie auf Ausführungsfehler
{ echo 'Scraper error: ' . curl_error($curl); exit; }
Schließen Sie die Verbindung: curl_close($curl);
Um nur einen bestimmten Teil der Informationen zu extrahieren, müssen Sie unter id=“case_textlist“ angeben, was Sie extrahieren wollen. By default, cURL will extract the entire page:
$regex = '<div id="case_textlist">(.*?)</div>/s';
wenn
(preg_match($regex, $page, $list)) echo $list[0]; sonst echo "Nicht gefunden";
Um eine Website über einen Proxy-Server in PHP zu analysieren, können Sie die cURL-Bibliothek verwenden. Here’s an example PHP script that fetches a webpage using a proxy server:
PHP code:
<?php
// Setzen Sie die abzurufende URL
$url = "http://www.example.com";
// Proxyserver und Port festlegen
$proxy = "proxy.example.com:8080";
// Erstellen einer neuen cURL-Ressource
$ch = curl_init();
// Setzen der cURL-Optionen
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Abrufen der URL und Ausgabe der Antwort
$Antwort = curl_exec($ch);
echo $response;
// Schließen der cURL-Ressource
curl_close($ch);
?>
Im obigen Skript können Sie die Variable $url in die URL der Website ändern, die Sie analysieren möchten, und die Variable $proxy in die Adresse und den Port des Proxy-Servers, den Sie verwenden möchten. Die Funktion curl_setopt() wird verwendet, um die cURL-Optionen zu setzen, einschließlich der URL und des Proxy-Servers, und um die Antwort als String zurückzugeben, anstatt sie direkt auszugeben. Schließlich wird die Funktion curl_exec() verwendet, um die URL abzurufen und die Antwort mit echo auszugeben. Die Funktion curl_close() wird aufgerufen, um die cURL-Ressource zu schließen.
Im folgenden Video lernen Sie, wie Sie einen Proxy Scraper erstellen, indem Sie die URLs der Website mit cURL laden und mit regulären Ausdrücken abgleichen.
Wie man cURL für Advanced Scraping benutzt
Hier sind einige verfeinerte cURL-Konfigurationen, die helfen können, Ihre Web-Scraping-Sitzungen zu optimieren.
Unterüberschrift: Einbindung eines Benutzeragenten
Wenn Sie cURL zum Herunterladen oder Scrapen von Links verwenden, identifiziert es sich gegenüber der Website als cURL. In manchen Fällen ist dies nicht erwünscht, da bestimmte Websites cUrl als Bot erkennen und blockieren könnten.
Um dies zu umgehen, fügen Sie einen Benutzer-Agenten ein, indem Sie die Option -A oder –user-agent verwenden. In diesem Beispiel haben wir einen Benutzer-Agenten für Firefox 65 unter Windows 10 verwendet:
curl -x https://fineproxy.de/ -v -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0"
Alternativ können Sie den User-Agent auch mit der Option -H im Header mitschicken:
curl -x https://fineproxy.de/ -v -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0"
Unterüberschrift: Kopfzeilen konfigurieren
Beim Scraping einer Website ist es wichtig, nicht als Bot wahrgenommen zu werden. Viele Websites blockieren inzwischen das Extrahieren ihrer Daten durch Bots, da diese den Server überlasten und den Service für menschliche Nutzer beeinträchtigen können.
Um dies zu erreichen, müssen Sie mit cURL geeignete Header senden.
Bestimmen Sie zunächst die Header, die Sie normalerweise an die Ziel-Website senden, indem Sie mit der rechten Maustaste klicken und „Inspect“ auswählen. Navigieren Sie dann zur Registerkarte „Netzwerk“. Aktualisieren Sie die Zielsite, und Sie sehen die Anfragen, die während des Ladens der Site gestellt werden. Um die Anfrage genauer zu untersuchen, können Sie auch mit der rechten Maustaste darauf klicken und sie als cUrl-Befehlszeile kopieren.
Anschließend konfigurieren Sie die Kopfzeilen in cUrl mit der Option -H oder –header. So würden Sie zum Beispiel einen „Accept“-Header an die Zielseite senden:
curl -x https://fineproxy.de/ -v -H "Akzeptieren: text/html"
Wie man cURL mit Proxy-Servern benutzt
Die Verwendung von cURL mit einem Proxy ermöglicht verschiedene Anwendungsfälle, wie z.B. Web Scraping, bei denen ein Proxy notwendig ist, um die Sperrung von Websites zu verhindern. In dieser Anleitung erfahren Sie, wie Sie mit cURL Daten über einen Proxy-Server senden können.
Folgen Sie diesen Schritten, um cURL mit einem Proxy zu verwenden:
1. Einrichten des Proxy-Servers
Richten Sie zunächst Ihren Proxy gemäß den Anweisungen Ihres Proxy-Anbieters ein. Um zu überprüfen, ob Ihr Proxy korrekt eingerichtet ist, geben Sie den folgenden Befehl in Ihr Terminal ein:
curl https://httpbin.org/ip
Dieser Befehl gibt die IP-Adresse Ihres Geräts zurück. Wenn die Werte mit der ursprünglichen IP-Adresse Ihres Geräts übereinstimmen, ist Ihr Proxyserver nicht richtig eingerichtet. Wenn sie nicht übereinstimmen, ist Ihr Proxyserver richtig konfiguriert.
2. Konfigurieren Sie Ihren Proxy für die Arbeit mit cURL-Befehlen
Es gibt drei Möglichkeiten, Ihren Proxy für die Verwendung mit cURL zu konfigurieren:
A. Verwendung einer Konfigurationsdatei (.curlrc)
Eine Konfigurationsdatei ist eine Textdatei mit den gewünschten Einstellungen, die im .curlrc-Dateiformat in Ihrem Systemverzeichnis gespeichert wird, damit Sie bei der Ausführung von cURL-Befehlen leicht darauf zugreifen können.
Eine Proxy-Konfigurationsdatei enthält Daten in diesem Format:
proxy = "[protocol://][host][:port]"
Sie können mehrere Konfigurationseinstellungen in der Datei speichern und sie bei Bedarf aktivieren. Bevor Sie cURL-Befehle ausführen, öffnen Sie die Datei, und jeder cURL-Befehl, den Sie ausführen, verwendet die Proxy-Einstellungen aus der Konfigurationsdatei.
Die Erstellung einer Konfigurationsdatei ist die beste Methode für diejenigen, die cURL wiederholt mit einem Proxy verwenden und große Datenmengen extrahieren. Sie spart Zeit, da der Proxy für cURL nicht jedes Mal neu konfiguriert werden muss.
B. Verwendung von Befehlszeilenargumenten
Diese Methode eignet sich für die einmalige Verwendung des Proxys mit cURL-Befehlen, da sie nur die direkte cURL-Proxy-Syntax erfordert. Die Syntax lautet wie folgt:
curl -x "[protocol://][host][:port]" [URL] [Optionen]
Da das Standardprotokoll von cURL HTTP ist, müssen Sie das Protokoll und die Details des Proxyservers angeben, insbesondere wenn Sie ein anderes Netzwerkprotokoll verwenden.
C. Verwendung von Umgebungsvariablen
Die dritte Methode besteht darin, die http_proxy- und https_proxy-Variablen zu setzen, die als Umgebungsvariablen bekannt sind und sich auf Prozesse auswirken, die auf der Systemebene laufen. Diese Befehle sind Teil des Betriebssystems und können andere Parameter außer Kraft setzen.
Die Syntax für cURL-Proxy-Einstellungen über Umgebungsvariablen lautet wie folgt:
export http_proxy="[protocol://][host][:port]"
export https_proxy="[protocol://][host][:port]"
Nachdem Sie diese Befehle ausgeführt haben, wird jeder cURL-Befehl, den Sie ausführen, automatisch über den Proxy-Server laufen. Lassen Sie uns nun ein wenig mehr über diese Methode sprechen.
Verwendung von cURL mit einem Proxy über Umgebungsvariablen
Eine Umgebungsvariable ist so etwas wie ein Objekt, das einen editierbaren Wert im Speicher speichert, der von einem oder mehreren Softwareprogrammen verwendet werden kann. In diesem Fall können wir eine Variable namens http_proxy oder https_proxy an cURL übergeben, die unsere Proxy-Informationen enthält, und müssen sie nicht jedes Mal angeben, wenn wir den Befehl ausführen. Sie können dies erreichen, indem Sie diesen Befehl ausführen:
$ export http_proxy="http://fineproxy.proxy_type=datacenter.device=desktop:<IHR-API-KEY>@proxy.fineproxy.de:80"
Bitte beachten Sie, dass Sie Ihre Variable http_proxy oder https_proxy nennen müssen, damit sie von cURL verstanden wird. Das war’s schon. Sie müssen nicht mehr jedes Mal Ihre Anmeldedaten eingeben, wenn Sie den Befehl ausführen, und Sie können cURL jetzt so einfach wie folgt ausführen:
$ curl http://httpbin.org/get
Dies liefert uns die folgende Ausgabe:
{ "args": {}, "headers": { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8", "Accept-Encoding": "gzip, deflate, br", "Host": "httpbin.org", "Upgrade-Insecure-Requests": "1", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, wie Gecko) Chrome/87.0.4280.88 Safari/537.36", "X-Amzn-Trace-Id": "Root=1-633bf912-66ace1104304ddaf5ea8ac65" }, "origin": "132.255.134.104", "url": "http://httpbin.org/get" }
Wie Sie sehen, handelt es sich bei der IP-Adresse um die des Proxys, was bestätigt, dass Sie bei der Einrichtung Ihres Proxys gute Arbeit geleistet haben. Jetzt können wir jeden cURL-Befehl ausführen, ohne die Proxy-Informationen angeben zu müssen, da cURL dies für uns erledigt.
Unsere Proxy-Guides
Lesen Sie unsere Guides, um zu erfahren, wie Sie Proxys effektiv nutzen können:
- Proxyserver Einrichten in Safari
- So richten Sie einen HTTP-Proxy für Android ein
- Einrichten eines Proxys in Telegram auf Windows, MacOS, Android und iOS
- So richten Sie Proxy-Server im Browser Chrome ein
- So richten Sie Proxy-Server im Mozilla Firefox-Browser ein
- So richten Sie Proxy-Server im Tor-Browser ein
7 wichtige Tricks und Tipps
In diesem Abschnitt stellen wir Ihnen einige interessante Tricks und wertvolle Tipps für den Einsatz von Proxies mit cUrl vor, die speziell auf Ihre Bedürfnisse zugeschnitten sind.
Tipp 1: Proxys ausschließlich für cUrl einrichten
Um Proxys ausschließlich für cUrl-basierte Aufgaben festzulegen, verwenden Sie die folgende Befehlsfolge:
1. cd ~ $ nano .curlrc
2. Fügen Sie diese Zeile in die Datei ein: proxy=http://user:[email protected]_Adresse_oder_FQDN:port
Beispiel:
proxy=http://testuser:[email protected]:3128
3. Führen Sie cUrl wie gewohnt aus: $ curl "https://www.reddit.com"
Tipp 2: Aktivieren und Deaktivieren von Proxies
Erstellen Sie einen Alias in Ihrer .bashrc-Datei in Ihrem Editor, um dies zu erreichen:
$ cd ~
alias proxyon="export http_proxy='http://user:[email protected]_IP_oder_FQDN:Port';export https_proxy='http://user:[email protected]_IP_oder_FQDN:Port'"
alias proxyoff="unset http_proxy;unset https_proxy"
Beispiel:
alias proxyon="export http_proxy='http://testuser:[email protected]:3128';export https_proxy='http://testuser:[email protected]:3128'"
Überprüfen Sie die Alias-Einstellung, indem Sie den Alias-Befehl im Terminal ausführen. Speichern Sie die .bashrc und aktualisieren Sie die Shell mit:
$ ~/.bashrc
Tipp 3: Umgehung von SSL-Zertifikatsfehlern
Wenn cUrl auf SSL-Zertifikatsfehler stößt, blockiert es diese Anfragen. Um SSL-Zertifikatsfehler zur Fehlersuche zu „überspringen“, insbesondere in einmaligen Situationen, fügen Sie -k oder –insecure zur cUrl-Befehlszeile hinzu:
curl -x "[protocol://][host][:port]" -k [URL]
Tipp 4: Weitere Informationen über die Anfrage einholen
Wenn Ihre Anfragen nicht wie erwartet funktionieren, sollten Sie den Pfad der Anfrage, die Kopfzeilen und verschiedene Fehler untersuchen. Um die Anfrage zu untersuchen, fügen Sie der Anfrage nach cUrl -v (–verbose) hinzu, wodurch alle Kopfzeilen der Anfrage und die erlebten Verbindungen ausgegeben werden.
Tipp 5: Proxys für eine einzelne Anfrage ignorieren
Um einen Proxy für eine bestimmte Anfrage außer Kraft zu setzen, verwenden Sie die folgende Befehlszeile:
curl --proxy "http://user:[email protected]_FQDN_oder_IPAdresse" "https://reddit.com"
Oder verwenden Sie:
$ curl --noproxy "*" https://www.reddit.com
Um Proxys komplett zu umgehen. Mit der Option -v wird angezeigt, dass die Verbindung direkt zu Reddit geht, ohne dass ein Proxy verwendet wird.
Tipp 6: Verwendung von SOCK-Proxys
Wenn Sie eine beliebige Art von SOCK-Proxy (4/4a/5/5h) verwenden möchten, bleibt die Codestruktur die gleiche wie zuvor, außer dass Sie den entsprechenden Abschnitt durch den entsprechenden SOCKS-Typ ersetzen:
curl -x "socks5://user:[email protected]_IP_oder_FQDN:Port" https://www.reddit.com
Beispiel:
$ curl -x "socks5://testuser:[email protected]:3128" https://www.reddit.com
Pro-Tipp 7: Wenn kein Protokoll angegeben wird, verwendet cURL standardmäßig SOCKS4!
Curl vs. Wget
Wget ist ein Befehlszeilentool mit zahlreichen Features, die Dateiübertragungen mit Standard-Netzwerkprotokollen wie HTTP, HTTPS und FTP ermöglichen. Sein Name ist eine Kombination aus dem ersten Buchstaben von WWW und „get“, was darauf hinweist, dass Wget in erster Linie für den Austausch von Webdaten entwickelt wurde.
Die Standardsyntax für Wget-Befehle lautet:
Wget [Option] [URL]
Wget-Befehle sind mit cURL-Befehlen vergleichbar und führen ähnliche Funktionen aus, allerdings auf unterschiedliche Weise.
5 Gemeinsamkeiten zwischen cURL und Wget
- Beide sind Kommandozeilenprogramme, die Dateien von FTP und HTTP oder HTTPS herunterladen können und HTTP POST-Anfragen unterstützen.
- Beide sind Open-Source-Software.
- Sowohl cURL als auch Wget wurden im selben Jahr, 1996, eingeführt.
- Beide haben ähnliche Lizenzen, die GPLv3-Lizenz.
- Beide sind leichtgewichtige Softwarepakete, die auf mehreren Betriebssystemen funktionieren.
10 Unterschiede zwischen cURL und Wget
Der Hauptunterschied zwischen cURL und Wget liegt in der Art und Weise, wie diese Dienstprogramme Anfragen ausführen und welche Ressourcen sie verwenden, um ihre Ziele zu erreichen. Die folgende Tabelle zeigt diese Unterschiede auf:
cURL | Wget | |
---|---|---|
Bibliothek | Unterstützt von der libcURL-Bibliothek | Keine Bibliothek erforderlich |
Operationen | Überträgt Daten in einer einzigen Operation, kein rekursives Herunterladen | Unterstützt rekursives Herunterladen |
Protokolle | Unterstützt eine Reihe von Netzwerkprotokollen | Unterstützt nur HTTP(S) und FTP |
Download | Benötigt -o oder -O, um eine entfernte URL in eine lokale Datei herunterzuladen | Benötigt kein -o oder -O, um eine entfernte URL herunterzuladen |
Uploads | Kann Daten in beide Richtungen hochladen und übertragen | Unterstützt nur einfache HTTP-POST-Anfragen |
Proxy | Unterstützt die Proxy-Typen HTTPS, SOCKS 4 und SOCKS 5 | Unterstützt HTTP-Proxy, aber nicht SOCKS-Proxy-Typen |
Auth | Unterstützt zusätzliche Authentifizierungstechniken für HTTP-Proxys | Unterstützt nur grundlegende Authentifizierungsverfahren für HTTP-Proxys |
Portabilität | Portabler und vorinstalliert auf Windows und macOS | Weniger portabel und nicht vorinstalliert auf Windows und macOS |
Features | Erfordert, dass jedes Feature direkt angegeben wird | Features Hat Features wie Cookies und Zeitstempel standardmäßig aktiviert |
Anforderungen | Erfordert kein gnulib-Paket oder C99-Compiler | Erfordert gnulib und C99-CompilerWann cURL oder Wget verwenden |
In den meisten Situationen ist cURL die beste Wahl, aber es gibt Fälle, in denen Wget besser geeignet ist. Sie müssen entscheiden, welches dieser Befehlszeilendienstprogramme Ihnen hilft, Ihre Aufgaben schneller und effektiver zu erledigen. Ein Beispiel:
- Wget bewältigt Download-Wiederholungen über wackelige Verbindungen besser als cURL.
- Wget bietet Download-Fähigkeiten wie entscheidende rekursive Downloads und Bandbreitenkontrolle, die cURL fehlt.
Daher ist es am besten, in solchen Situationen Wget-Befehle zu verwenden. Auch wenn ein anderes Netzwerkprotokoll als HTTP/HTTPS und FTP verwendet wird, ist cURL die bessere Wahl. Die Entscheidung, ob Sie cURL oder Wget verwenden, hängt immer von den Besonderheiten der Aufgaben ab, die Sie zu erledigen haben.
Fazit
cURL-Befehle sind leistungsfähige und vielseitige Werkzeuge für alle, die große Datenmengen über ein Netzwerk übertragen müssen. Die Verwendung von cURLs mit Proxys ist eine wünschenswerte Erweiterung, mit der Sie praktisch jede Aufgabe bewältigen können. Diese Kombination gewährleistet Datenschutz und Sicherheit, ohne die Vielseitigkeit der cURL-Befehle zu verlieren. Obwohl Wget sehr umfangreich ist, ist cURL aufgrund seiner benutzerfreundlichen Oberfläche und seiner leistungsstarken Funktionen vorzuziehen.
Nach dem, was wir bisher besprochen haben, werden Sie vielleicht in Erwägung ziehen, die coolen Effekte von cURL auszuprobieren. Wenn Sie es noch nicht in Betracht gezogen haben, sollten Sie es tun. Bleiben Sie cURLy (Wortspiel beabsichtigt).