Pythonによるクローラー&スクレイピング入門 設計・開発から収集データの解析まで(随時更新)

Pythonによるクローラー&スクレイピング入門 設計・開発から収集データの解析まで
今週のお題「自己紹介」


Chapter1

Wgetスクレイピングをしてみる。WgetはHTTP/FTPを使ってサーバーからファイルをダウンロードするためのOSS
[HTTP/HTTPSでまとめてデータを取得するwgetコマンドとは?](http://www.atmarkit.co.jp/ait/articles/1506/09/news006.html)

Wgetの使い方

$ brew install wget
$ wget yahoo.co.jp # ダウンロード
$ ls # 現在のディレクトリに保存されている
index.html 

Wgetコマンドオプション

オプション 説明
-h ヘルプを表示
-q 進捗情報などのメッセージを非表示
-o      〃      をファイルに保存
-O ファイルに保存
-c 前回の続きからダウンロード再開
-t 再試行の回数を指定
-r recursive。再帰的にダウンロード
-l level。再帰的にダウンロードするときのリンクの深さを指定(デフォルトは5)。
-w 再帰的にダウンロードするときのダウンロードの感覚を指定
-np 再帰的にダウンロードするときに親ディレクトリをクロールしない
-A ダウンロードする拡張子を指定
-R ダウンロードしない拡張子を指定
-k リンク画像などの参照を絶対パスから相対パスに変換

以下、使用例。

$ mkdir download # 保存先を作って
$ wget -O ./download/yahoo-top.html yahoo.co.jp   # ダウンロード先、保存ファイル名を指定
$ wget -O - yahoo.co.jp/ # こうすれば標準出力

1階層分再帰的にダウンロードする。
カレントディレクトリに「yahoo.co.jp」というフォルダが作成され、その下にファイルが保存される。

$ wget -r -l1 example.com # 深さを制限
$ wget -r -l1 -A jpg, png, gif example.com # ダウンロードする拡張子を指定
$ wget -r -l1 -R jpg, png, gif example.com # ダウンロードしない拡張子を指定
$ wget -r -np example.com # 親ディレクトリをダウンロード対象外にする
$ wget -r -l1 -w3 -R jpg,png,gif http://www.shoeisha.co.jp/book  # 再帰的に、1階層を、3秒間隔でダウンロードして、画像は除かせる

再起処理した後のディレクトリ構造は「tree」コマンドで表示。
なければHomebrewでインストール。Macならデフォルトである。
【 tree 】コマンド――ディレクトリをツリー状に表示する:Linux基本コマンドTips(179) - @IT

$ brew install tree
$ tree foldername

コマンドでスクレイピング

ps