2010-09-18 11 views

Antwort

133

Sie wget Kommando können Sie die Seite zum Herunterladen und es in eine Variable als lesen:

content=$(wget google.com -q -O -) 
echo $content 

Wir verwenden die -O Möglichkeit wget, die uns den Namen der Datei angeben können, in die wget die Dumps Seiteninhalt. Wir geben an, um den Dump auf die Standardausgabe zu bekommen und diesen in die Variable content zu sammeln. Sie können die Option -q quiet hinzufügen, um die wget-Ausgabe zu deaktivieren.

können Sie den curl Befehl für diesen aswell als verwenden:

content=$(curl -L google.com) 
echo $content 

Wir brauchen die -L Option als die Seite verschoben hätten wir bitten verwenden. In diesem Fall müssen wir die Seite vom neuen Standort abrufen. Die -L oder --location Option hilft uns dabei.

+2

Ich erklärte, und Ihre Frage wurde seitdem bearbeitet, so dass mein Downvote nichts mehr bedeutet ... (Es wurde tatsächlich zu einem Upvote). –

+0

Dies ist ein wirklich netter Trick. Ich rufe ein Shell-Skript über ein PHP-Skript auf einem Proxy-Server auf. Auf Nachfrage schaltet der Proxy-Server teure Server ein, die sich nach 2 Stunden abschalten. Ich brauche die Ausgabe von wget für die Standardausgabe, um zum Jenkins-Konsoleneintrag zurückzukehren. – Dennis

+0

ich bin noch nicht dabei ... kann mir jemand zeigen, wie, zum Beispiel. Erhalten Sie ein img-Tag in einer Variablen für diesen Link http://www2.watchop.io/manga2/read/one-piece/1/4 ?? – juggernaut1996

9

Es gibt den wget Befehl oder den curl.

Sie können jetzt die mit wget heruntergeladene Datei verwenden. Oder Sie können einen Stream mit Curl behandeln.


Ressourcen:

2
content=`wget -O - $url` 
+2

'$ (...)' wird gegenüber '' '' 'bevorzugt, siehe http://mywiki.wooledge.org/BashFAQ/082 – Giacomo

+2

Ich schätze, ich zeige mein Alter. Damals waren wir alle Backticks ... und wir liked_ it! Jetzt geh von meinem Rasen! –

+0

@rjack: (Aber der Artikel, den Sie verlinkt haben, macht einen ziemlich guten Fall für die $ (...) Syntax.) –

2

Sie können curl oder wget verwenden, um die Rohdaten abzurufen, oder Sie könnenverwendenum 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. 
20

es gibt viele Wege, eine Seite in der Befehlszeile zu bekommen ... aber es hängt auch wenn Sie den Code Quelle oder die Seite selbst wollen:

Wenn Sie den Quellcode

mit curl: curl $url

mit wget: wget -O - $url

aber wenn Sie wa nt zu bekommen, was man mit einem Browser sehen kann, kann sehr nützlich sein, Luchs: lynx -dump $url

Ich glaube, Sie so viele Lösungen für dieses kleine Problem zu finden, sollten Sie vielleicht alle Manpage für diese Befehle lesen.Und vergessen Sie nicht, $ url durch Ihre URL :)

Viel Glück :)

2

zu ersetzen Wenn Sie LWP installiert haben, ist es ein binäres bietet einfach den Namen „GET“.

 
$ GET http://example.com 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<HTML> 
<HEAD> 
    <META http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <TITLE>Example Web Page</TITLE> 
</HEAD> 
<body> 
<p>You have reached this web page by typing &quot;example.com&quot;, 
&quot;example.net&quot;,&quot;example.org&quot 
    or &quot;example.edu&quot; into your web browser.</p> 
<p>These domain names are reserved for use in documentation and are not available 
    for registration. See <a href="http://www.rfc-editor.org/rfc/rfc2606.txt">RFC 
    2606</a>, Section 3.</p> 
</BODY> 
</HTML> 

wget -O-, curl und lynx -source ähnlich verhalten.

Verwandte Themen