web-dev-qa-db-ja.com

Shell変数でWebページのコンテンツを取得する方法は?

Linuxでは、どのようにしてURLを取得し、その内容をシェルスクリプトの変数に取得できますか?

100
Aillyn

wgetコマンドを使用してページをダウンロードし、次のように変数に読み込むことができます。

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

wget-Oオプションを使用すると、wgetがページの内容をダンプするファイルの名前を指定できます。 -を指定してダンプを標準出力に取得し、それを変数contentに収集します。 -q quietオプションを追加して、wget出力をオフにすることができます。

このために curl コマンドを使用できます:

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

要求しているページが移動した可能性があるため、-Lオプションを使用する必要があります。その場合、新しい場所からページを取得する必要があります。 -Lまたは--locationオプションはこれに役立ちます。

170
codaddict

コマンドラインからページを取得するには多くの方法がありますが、コードソースが必要なのかページ自体が必要なのかによっても異なります。

コードソースが必要な場合:

カール付き:

curl $url

wgetを使用:

wget -O - $url

しかし、ブラウザで表示できるものを取得したい場合、lynxは便利です。

lynx -dump $url

この小さな問題に対する非常に多くの解決策を見つけることができると思います。おそらく、それらのコマンドのすべてのマニュアルページを読む必要があります。 $urlをURLに置き換えることを忘れないでください:)

がんばろう :)

21
julianvdb

wgetコマンドまたはcurlがあります。

これで、wgetでダウンロードしたファイルを使用できます。または、curlでストリームを処理できます。


リソース:

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

curlまたはwgetを使用して生データを取得するか、w3m -dumpを使用してWebページのNiceテキスト表現を作成できます。

$ 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

LWP がインストールされている場合、単に " 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> Webページの例</ TITLE > 
 </ HEAD> 
 <body> 
 <p>&quot; example.com&quot;、
&quot; exampleと入力して、このWebページにアクセスしました。 net&quot;、&quot; example.org&quot 
または&quot; example.edu&quot; </ p> 
 <p>これらのドメイン名はドキュメントで使用するために予約されており、登録には使用できません
。 <a href="http://www.rfc-editor.org/rfc/rfc2606.txt"> RFC 
 2606 </a>、セクション3を参照してください。</ p> 
 < /BODY>
</HTML>

wget -O-curl、およびlynx -sourceは同様に動作します。

2
ephemient