とあるプロジェクトに参画して、特定のサイトの全データを取得することとなった
方法としては wget か crul 。今回は wget にて行うことに

一つのサイトに掲載されている情報を取得するにも

  • コンテンツ提供方法
    静的リンク、動的リンク
  • コンテンツ種類
    html,pdf,wmvら

を考慮する必要がある。コンテンツの提供が静的なら拡張子によってコンテンツの種類は判明できよう
がだ、動的の場合、サイトのプログラムから吐き出されるMIMEタイプで判断される

一言、「丸ごと全部」っと言ってもその後の解析を考える上で悩ましい。

コマンド

  wget -r -t 1 -q -w 1 --random-wait --connect-timeout=15  -A html,htm,css,js  http://www.xxx.zzz.xxxx/
 
  -r: 再帰的なダウンロードを実行
  -q: 進捗などの詳細表示をしない
  -w: ファイル取得後の待ち時間
  --random-wait: -wの値に0.5 - 1.5の係数を掛けて待ち時間を設ける
 
  -t: リトライ回数 既定は20
  -N: 既にダウンロードしたファイルと同じ時刻ならダウンロードしない
 
  -A: 指定した文字列を含むファイルを取得 html,htm とか
  -R: 指定した文字列を含まないファイルを取得 pdf,wmv とか
 
  -p: そのページを構成するのに必要なcssやjsをダウンロード
  -k: 絶対パスから相対パスへ切り替える
 
  --limit-rate=100000: 帯域制限 100,000 (100KB/秒)
  --connect-timeout=15:  接続タイムアウトを15秒にすr
 
  wget -r -q -w 1 --random-wait -A html,htm -pk --limit-rate=100000

参照先:http://d.hatena.ne.jp/littlebuddha/20080317/1205728648

確認として、html以外のファイルがあるかをチェック

find . -type f -not -name "*.htm" -a -not -name "*.html"

トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2017-07-11 (火) 00:07:02 (2160d)