it-swarm.com.de

Wie erhalte ich den Inhalt einer Webseite in einer Shell-Variablen?

Wie kann ich unter Linux eine URL abrufen und deren Inhalt in einer Variablen im Shell-Skript abrufen?

103
Aillyn

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.

174
codaddict

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 :)

21
julianvdb

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:

9
Colin Hebert
content=`wget -O - $url`
3
Jim Lewis

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.
2
Giacomo

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.

2
ephemient