シェル変数でWebページのコンテンツを取得するにはどうすればよいですか?


115

Linuxでは、URLをフェッチして、その内容をシェルスクリプトの変数に取得するにはどうすればよいですか?

回答:


189

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

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

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

これにはcurlコマンドを使用することもできます。

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

-Lリクエストしているページが移動した可能性があるため、このオプションを使用する必要があります。その場合、新しい場所からページを取得する必要があります。-Lまたは--locationオプションでは、これで私たちを支援します。


これは本当にすてきなトリックです。プロキシサーバーでphpスクリプトを介してシェルスクリプトを呼び出します。要求されると、プロキシサーバーは高価なサーバーをオンにし、2時間後にシャットダウンします。Jenkinsコンソールレコードにフィードバックする標準出力用のwgetからの出力が必要です。
デニス

私はまだこれを手に入れていません...たとえば、誰でもどのようにデモを行うことができますか。このリンクの変数でimgタグを取得しますwww2.watchop.io/manga2/read/one-piece/1/4 ??
juggernauthk108

@ juggernaut1996:これは別の質問です。簡単に言えば、あなたは、ページをダウンロード抽出する必要がsrcダウンロードした後、正しい要素の属性をそのページを。あなたがインストールする場合TQ、このコマンドはそれを行う必要があります:curl -s http://ww1.watchop.io/manga2/read/one-piece/1/4 | tq -j -a src "#imgholder a img" | xargs wget
pyrocrasty

Wget 1.14バージョンはオプション付きで受け付けconvert_links = onていません-O-。エラーで失敗しています-k can be used together with -O only if outputting to a regular file.。それは期待されていますか?
Prasad Bonthu

28

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

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

カールあり:

curl $url

wgetを使用:

wget -O - $url

しかし、ブラウザで表示できるものを取得したい場合は、lynxが役立ちます。

lynx -dump $url

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

幸運を :)




3

LWPがインストールされている場合は、単に「GET」という名前のバイナリが提供されます。

$ GET http://example.com
<!DOCTYPE HTML PUBLIC "-// W3C // DTD HTML 4.01 Transitional // EN">
<HTML>
<ヘッド>
  <META http-equiv = "Content-Type" content = "text / html; charset = utf-8">
  <TITLE>ウェブページの例</ TITLE>
</ HEAD> 
<ボディ>  
<p>「example.com」と入力してこのWebページにアクセスしました。
&quot; example.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-curllynx -source同様に振る舞います。


2

あなたは使用することができcurlたりwget、生のデータを取得するために、またはあなたが使用することができw3m -dump、Webページの素敵なテキスト表現を持っています。

$ 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.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.