Codeworks Notes

 2021-11-02

Linux

きほんの wget

Webページの内容を取得する wget コマンド

ファイルをダウンロードしたり Web コンテンツから文字列を取得することができる wget コマンド。HTTP な Web サイトでは意識することなかったんですが、HTTP/2 が推進され SSL が標準化されていく中で ちゃんと知っておかないといけないなあ、と思ったのでメモ。

準備

パッケージの入れ方から。

# Redhat系
yum install wget

# Debian系
apt-get install wget

使い方

サイトをダウンロードする基本の書きかた。

# トップページを取得
wget example.ne.jp

# 階層指定する
wget -l 2 -H -r example.ne.jp

# 名前をつけて保存する
wget example.ne.jp -O ./filename.html

オプションの -l はディレクトリ階層の深さです。「 -l 2 」は2階層目までを表します。
-H はドメインを固定します。リンクが別ドメインのものは取りにいかない。
-r は再帰的にダウンロードします。

SSL な Web ページに wget を使う

wget は SSL に対応していないので --no-check-certificate オプションを使います。

wget --no-check-certificate https://example.ne.jp

標準出力する

-qO- オプションでファイルにダウンロードすることなく標準出力することができます。

wget -qO- example.ne.jp

wget -qO- --no-check-certificate https://example.ne.jp

BASIC 認証の掛かった Web サイトで wget する

ユーザー名とパスワードを指定してアクセスします。

wget --http-user={username} --http-passwd={password} {example.ne.jp}

フォームから post 送信して wget したいとき

ログイン認証ページを抜けた先の情報を取りたいときの書きかた。

wget --post-data="userid=xxxxxxxx&password=xxxxxxxxx" --no-check-certificate "https://example.com/"

よそのサイトからログインして取ってきたものを文字列整形して活用したいとか、そういった時に使えます。