LoginSignup
13
15

More than 5 years have passed since last update.

サイトのデータ移行などでよく使うwgetのオプション指定を逆引きでメモしておく

Posted at

完全に自分向けの備忘録です。

ウェブサイトのデータ移行や調査などを行う際、よくお世話になるのがwget。

オプションが豊富で、たいがいなんでもできてしまうのですが、「これをやりたいときにどうオプションを指定すればよいか」という、目的から逆引きで考えると、迷うことが多い。

忘れないように、メモしておきます。

ウェブサイトのデータを丸ごと取得したい

wget -r http://example.com

よく使う

ウェブサイトのデータを上位3階層に限定して取得したい

wget -r -l 3 http://example.com

-l はlevelの略。-l の後に数字を付与して階層を限定する

wget実行中に取得状況を表示しない

wget -q -r http://example.com

-q はquietの略。

日本語ファイルを文字化けせずに取得したい

wget --restrict-file-names=nocontrol -r http://example.com

--restrict-file-names オプションは、エスケープ処理の方法を決めるオプション。nocontrolをつけると、何も手を加えずそのままwgetする。

"unix"を指定すると、"/(スラッシュ)" ほかコントロール文字列をエスケープ処理する。"windows"などの指定もできる。

詳しくはマニュアル参照。

ファイルに記述されたURLリストに従いwgetしたい。ただし階層構造はそのままで取得したい

wget -x -i list.txt

単純にリストに基づきファイル類をwgetするなら、-i ファイル名 でok。-x オプションをつけると、階層構造を保持するために、必要に応じてディレクトリを自動的に生成する。

-xオプションを付けない場合、wgetコマンドを実行したディレクトリ上にすべてのファイルを保存してしまう。

.htaccess で画像引用を制限しているサイトのデータをすべて取得する

wget -r http://example.com --referer="http://example.com"

外部のウェブサイトに画像を引用されないように.htaccessで制限をかけている場合があります。例えば以下の様な設定。

SetEnvIf Referer "^http://example\.com" ref_ok
order deny,allow
deny from all
allow from env=ref_ok

この場合、リファラを指定して、同一ドメイン内からのアクセスしているように見せることでファイルの取得ができる。

ユーザーエージェントを指定してデータをすべて取得する

wget -r http://example.com --user-agent="Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.76 Safari/537.36"

--user-agent で指定する。例は Widnows + Chrome でwgetしている。
iOS や Android も指定可能

あるサイト内の jpg,png,gif といった画像ファイルのみ取得したい

wget -A jpg,gif,png -r http://example.com

-A はaccept の略。ダウンロードしたいファイルの拡張子を、-A の後にカンマ区切りで指定する。マニュアルを見ると、ワイルドカードなども使えるらしい。

あるサイト内のjpg,png,gif といった画像ファイルを除外してデータ取得したい

wget -R jpg,gif,png -r http://example.com

先ほどのパターンと逆。-Rはrejectの略。-Aオプション同様に、カンマ区切りで指定してダウンロードしたくない拡張子を記述する。

以後、随時追記予定

参考:
http://www.rationallyparanoid.com/articles/wget.html
https://www.gnu.org/software/wget/manual/wget.html

13
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
15