Wie kann ich unter Linux eine URL abrufen und deren Inhalt in einer Variablen im Shell-Skript abrufen?
Sie können den Befehl wget
verwenden, um die Seite herunterzuladen und in eine Variable einzulesen:
content=$(wget google.com -q -O -)
echo $content
Wir nehmen das -O
Option von wget
, mit der wir den Namen der Datei angeben können, in die wget
den Seiteninhalt kopiert. Wir spezifizieren -
, um den Dump auf die Standardausgabe zu bekommen und diesen in der Variablen content
zu sammeln. Sie können das -q
leise Option zum Ausschalten der Wget-Ausgabe.
Dazu können Sie den Befehl curl verwenden sowie:
content=$(curl -L google.com)
echo $content
Wir müssen das -L
Option, da die angeforderte Seite möglicherweise verschoben wurde. In diesem Fall müssen wir die Seite vom neuen Speicherort abrufen. Das -L
oder --location
Option hilft uns dabei.
Es gibt viele Möglichkeiten, eine Seite über die Befehlszeile abzurufen. Es hängt jedoch auch davon ab, ob Sie die Codequelle oder die Seite selbst möchten:
Wenn Sie die Codequelle benötigen:
mit locken:
curl $url
mit wget:
wget -O - $url
wenn Sie jedoch das erhalten möchten, was Sie mit einem Browser sehen können, kann lynx nützlich sein:
lynx -dump $url
Ich denke, Sie können so viele Lösungen für dieses kleine Problem finden, vielleicht sollten Sie alle Manpages für diese Befehle lesen. Und vergessen Sie nicht, $url
Durch Ihre URL zu ersetzen :)
Viel Glück :)
Es gibt den Befehl wget
oder den Befehl curl
.
Sie können nun die mit wget heruntergeladene Datei verwenden. Oder Sie können einen Stream mit Curl behandeln.
Ressourcen:
content=`wget -O - $url`
Sie können curl
oder wget
verwenden, um die Rohdaten abzurufen, oder Sie können w3m -dump
um eine schöne Textdarstellung einer Webseite zu haben.
$ foo=$(w3m -dump http://www.example.com/); echo $foo
You have reached this web page by typing "example.com", "example.net","example.org" or "example.edu" into your web browser. These domain names are reserved for use in documentation and are not available for registration. See RFC 2606, Section 3.
Wenn Sie LWP installiert haben, wird eine Binärdatei mit dem Namen " GET " bereitgestellt.
$ GET http://example.com <! DOCTYPE HTML PUBLIC "- // W3C // DTD HTML 4.01 Transitional // DE"> <HTML> <HEAD> <META http-equiv = "Inhaltstyp" content = "text/html; charset = utf-8"> <TITLE> Beispielwebseite </ TITLE > </ HEAD> <Body> <P> Sie haben diese Webseite durch Eingabe von "example.comquot", ".____.", "Example" erreicht. netquot ;, quot; example.orgquot oder quot; example.eduquot; in Ihren Webbrowser. </ p> <p> Diese Domainnamen sind für die Verwendung in der Dokumentation reserviert und stehen nicht für die Registrierung zur Verfügung. Siehe <a href="http://www.rfc-editor.org/rfc/rfc2606.txt"> RFC 2606 </a>, Abschnitt 3. </ P> < /BODY>[.____.‹</HTML>
wget -O-
, curl
und lynx -source
verhalten sich ähnlich.