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