「巡集」でうまく保存できないサイトには「wget」を使ってぶっこぬけ!特集その2

「巡集」を始めとする多くのサイト丸ごと保存ツールは、「%E3%81%82」のようにパーセントエンコードされた日本語を含むURLを不正な文字コードでデコードしてしまう場合があり、WikipediaやAndroidSmartなど、エンコードされたURLを多用しているサイトをうまく保存できない。「巡集」はデコードしないようにも設定できるが、保存先ファイルのパスが256バイト以上になる長いURLは保存に失敗してしまう。

このようなURLのページが多いサイトを丸ごと保存したければ、「wget」の最新版を使おう。パーセントエンコードを保持するオプションがあり、長いファイルパスへの保存にも対応しているぞ。

最新版のwgetの導入には「Cygwin」のインストーラーが必要で、実行はコマンドプロンプトやBATファイルから行なうなど、多少使い方は面倒だが、巡集でうまく保存できないサイトを保存したければ、ぜひ試してみよう。

local_201Cygwinのプログラムを設置したいフォルダを作成したら、Cygwinのサイトから「setup.exe」をダウンロードししてきて配置しよう。

local_202setup.exeを起動し、「次へ」を押していき、この画面になったら一覧から「.jp」の付くサーバを選択して「次へ」を押そう。

local_203このような警告が出たら「OK」を押す。

local_204パッケージ選択画面が表示されたら、「search」欄に「wget」と入力し、表示された項目の「skip」となっているところをクリックしてバージョン番号が表示された状態にし、「次へ」を押そう。

local_205依存パッケージをインストールするか問い合わせる画面では、そのまま「次へ」を押そう。

local_206ダウンロードとインストールが行なわれるので、完了画面が表示されるまでしばらく待とう。

local_207次に、メモ帳などのテキストエディタで以下のようなコマンドライン文字列を記述し、ダウンロードしたファイルを保存したいフォルダ内に拡張子「.bat」で保存しよう。

C:\cygwin\bin\wget.exe -rpkKNE –level=4 –restrict-file-names=ascii “http://example.com/”

「C:\cygwin\」はCygwinのインストール先フォルダパス、「–level=」の後の数字はリンクとたどらせたい深度、最後のURLはリンクをたどる基点とするURL(サイトのトップページなど)に置き換えよう。

–span-hosts 別のドメインのURLへのリンクをたどる。これを指定しなければ、imgタグで埋め込まれている別サーバの画像などがダウンロードされないので注意が必要。
–domains=aaa.com,bbb.com リンクをたどる対象とするドメインを「=」以降にカンマ区切りで列挙。「–span-hosts」と共に指定する。指定したドメインのサブドメインもたどる対象になる。例えば、「aaa.com」を指定すると「img.aaa.com」などのURLもたどられる。
–exclude-domains=ad.aaa.com リンクをたどる対象から除外するドメインを「=」以降にカンマ区切りで列挙。主に「aaa.com」や「img.aaa.com」をたどらせつつ「ad.aaa.com」は無視させたいという場合に指定する。
-A “html,jpg,jpeg,png,gif,*attachment*” HTMLファイル以外でダウンロード対象とするファイルの種類を「””」内で指定する。「*」を含まない場合は、その拡張子のファイルが対象になる。「*」を含む場合は、ファイル名に対するワイルドカードでの指定となる。例えば「*attachment*」は、ファイル名の途中に「attachment」を含むファイルが対象となる。
-R “zip,mpeg,sample*” ダウンロード対象から除外するファイルの種類を「-A」と同じ書式で指定。-Aに一致したURLでも、-Rに一致した場合は除外される。
-I “/archive,/images” ダウンロード対象に含めるディレクトリの一覧を「””」内にカンマ区切りで列挙。
-X “/feeds,/cgi-bin” 除外するディレクトリの一覧を「””」内にカンマ区切りで列挙。
–follow-tags=a,img,frame,iframe,link,script リンク先URLをたどるHTMLタグを「=」以降にカンマ区切りで列挙。
–ignore-tags=script,embed,object 標準状態でたどるタグから除外するタグを「=」以降にカンマ区切りで列挙。
–e robots=off 「robots.txt」によるクローリング制御を無視する。


コマンドライン文字列に、以上のようなオプションを半角スペースで区切って追加することで、リンクをたどる条件などを細かく指定できる。なお、wget最新版の詳細な英語版マニュアルはhttp://www.gnu.org/software/wget/manual/wget.htmlで公開されている。対応するwgetのバージョンが古いが、日本語訳されたマニュアルも、http://www.geocities.jp/fut_nis/html/wget-ja/などにある。

local_208保存したBATファイルを実行すると、ダウンロード処理が開始される。なお、過去にダウンロードを実行済みだった場合は、追加・更新されたファイルのみがダウンロードされるぞ。

local_209このように、BATファイルがあるフォルダ内にドメインごとのフォルダが作られ、URLの階層構造を再現してファイルが保存されていく。これらのファイルを、USB接続などでAndroid端末のSDカード上に転送しよう。

local_210Android端末のブラウザで、ローカルHTMLのURLにアクセスすれば、このように保存されたページが表示されるぞ。SDカード上の「web」フォルダに「http://android-smart.com/」を基点にダウンロードしたフォルダを転送した場合は「file://sdcard/web/android-smart.com/index.html」を開けばいい。Android上でURLを入力するのは面倒なので、パソコン上で入力してQRコード経由などで送っておくといいだろう。

Cygwin
巡集

参考
QRコードでテキストをパソコンからAndroidに送ると楽ちんだ | あんどろいどスマート


関連記事

2011年07月15日18時36分 公開 | カテゴリー: ネット情報活用 | キーワード: | Short URL
このエントリーをはてなブックマークに追加

最新記事