画像掲示板ダウンロードスクリプトを使う


1. はじめに

画像掲示板ダウンロードスクリプトは cygwin 上の bash シェルで動作するように作られています。 cygwin のインストールが終わっていない場合はインストールして下さい。 使い方も必要であれは参照して下さい。
画像掲示板はそれぞれ特徴があるので複数のスクリプトを用意しています。 現在広く使われているいくつかの掲示板に対応しています。掲示板によっては制限、改造、改良が施されています。 場合によっては、サンプルとして用意したスクリプトが動作しないこともあります。

2. 対応している掲示板

掲示板の見分け方

掲示板の見分け方は、WEB ブラウザの URL 欄または、ページの先頭または末尾に記載されている著作権表示などに注目します。 例えば URL が http://www.xxx.yyy.zzz/cgi-bin/boardname/imgboard.cgi だったら imgboard.cgi 系だと判断します。 掲示板によっては URL が隠される場合もあります。この場合は、右クリックでプロパティを見たり(大抵はこれも出来ないように 妨害されています)します。ページの先頭または末尾に注目する場合は 先頭や末尾に GazouBBS のような表示を探します (この場合は GazouBBS 系です)。ただし、「改」や "Patch" など何らかの変更が加えられている場合、ダウンロードが上手く いかない場合があります。

掲示板の種類とスクリプト

次の表は掲示板の種類と対応しているスクリプトです。各スクリプトの引数と環境変数の指定は 共通と考えて差し支え有りません。
掲示板の種類 判別方法 対応スクリプト
imgboard.cig 系, joyful.cgi 系 URL または 末尾の著作権表示が imgboard または joyful imgbdown
joyful2ch.cgi 系 末尾の著作権表示が joyful2ch jf2ch
GazouBBS 系 末尾の著作権表示が GazouBBS gadown
MiniBBS-EX 系 末尾の著作権表示が MiniBBS-EX bbsdown

3. 使用例

C ドライブの \work と言うディレクトリ(フォルダ)に、download ディレクトリを新しく作成し、 ページ http://www.sample.download.xx/index.html のリンクをクリックすると表示されるページ http://www.sample.download.xx/cgi-bin/test/imageboard.cgi から画像をダウンロードする操作を例に示します。
(1) cygwin を起動する。
(2) 作業ディレクトリを C ドライブの \work に変更する。
$ cd /cygdrive/c/work
(3) download ディレクトリを作成して、作業ディレクトリを変更する。
$ mkdir download
$ cd download
(4) ページの参照関係を設定して、ダウンロードする。
$ export REFERFROM='http://www.sample.download.xx/index.html'
$ imgbdown 'http://www.sample.download.xx/cgi-bin/test/imageboard.cgi'

スクリプトの表示から、ダウンロードした画像ファイルやエラー・注意情報だけ表示するには grep を次のように使います。
$ imgbdown 'http://www.sample.download.xx/cgi-bin/test/imageboard.cgi' | grep '^[A-Z]*:'

4. アクセス制限について

掲示板の一部ではアクセス制限や自動ダウンロードに対する牽制をしているところがあります。 制限や牽制に対し対応を誤ると、通常のブラウザからのアクセスも出来なくなってしまいます。 掲示板によっては制限や牽制内容を公開し、アクセスの規約を示しています。 無理にアクセスする前に規約を参照し、それに従うようにしてください。
次の表は代表的なアクセス制限や牽制手法をまとめたものです。もし、制限や牽制があると 思われる場合は、そのページの規約を読み適切な対応をお願いします。
制限・牽制の種類 概要、対応
パスワード ページにアクセスするとユーザー名(ID)とパスワードを聞かれます。

このようなページをアクセスするには PAGEUSERNAME, PAGEPASSWORD 環境変数を設定して下さい。
referer 直接リンク(直リン)禁止サイトで本当に制限が掛かっている場合です。

ページのリンク構造をブラウザのプロパティを使って調べ REFERFROM 環境変数を設定して下さい。
Proxy 拒否 Proxy サーバ経由アクセスを拒否している場合です。

PROXYSERV, PROXYPORT 環境変数をクリアまたは、未指定状態にして下さい。 Proxy 経由でしかアクセスできない環境の場合はあきらめて下さい。
同時コネクション ブラウザを 2 面使い同時にアクセスすると異常が見られたり、 ダウンローダ、アクセス高速化ソフトでアクセスできないページです。

サンプルのスクリプトは速度を犠牲にして、同時コネクション数を増やさないようにしています。 ただし、スクリプトをバックグラウンドで並列して動作させた場合、サーバーの制限が掛かります。 スクリプトを起動するのに & を付ける、 または、cron で起動する、または、スケジューラで 起動する場合は慎重に検討してください。
時間当たり接続回数 短時間に多くのページを表示するとアクセスできなく場合です。

連続して同一サーバーの 複数ページをダウンロードしない様にしたり、RANDOMWAIT 環境変数に待ち時間を入れて対応してください。
エラー・リトライ サーバーの負荷が高いため、アクセスしてもページが表示されない場合です。

短時間で再表示(再試行)を繰り返すとアクセスを拒否される場合もあるので注意してください。 RETRYS 環境変数に 0 または 1 を設定し、再試行回数を減らします。 あるいは、スクリプト を改造して下さい。INTERVAL変数が再試行間隔の秒数です。
無効リンク ブラウザで表示すると何も表示は出ませんが、ソースを見るとランダムなアドレスに対してリンクが張られているか、特殊なリソース にリンクが張られている場合です。

ブラウスしている限り何も気づきませんが、ダウンロードソフトでアクセスすると、遅い、エラー出るなどするので分かります。 <A></A>の様にタグの間に何も仕込まないなどの手法をとっているようです。サンプルのスクリプトはある程度の 耐性はあります。しかし、問題が出るようでしたらスクリプトを改造してください。
難解析化 ブラウザで表示すると普通ですが、ソースを見ると可読性が極端に下げられている場合です。

UNIX 系の gwak, sed, grep の様に行単位での解析が主なツールを牽制するために、タグを行に分解したり、 コメントの中身に紛らわしい文字列を入れ込むなどが考えられます。 リンク解析はある程度耐性はありますが、 問題が出るようでしたらスクリプトを改造してください。

5. 禁忌画像 - 「グロクリーン」について

ダウンロードスクリプトは禁忌画像を回避してダウンロードする機能がありません。ダウンロードした後、 閲覧し、精神的に傷害を受けることもあるので注意してください。禁忌画像への唯一の対抗手段は、ダウンロード した画像ファイルを 0 バイトにすることです。ダウンロードスクリプトは同名ファイルが存在すると、 ダウンロードを回避します。ただし、完全ではありません。ファイル名が短い場合、西暦年と月を補って、 再ダウンロードする可能性があります。
付属した「グロクリーン」はデスクトップ上アイコンとして動作します。アイコンにファイルをドロップすると、 ファイルを .gro に拡張子変更した後、0 バイトの同名ファイルを作成します。

README へ移る cygwin 操作手引き へ移る

Copyright(C) [2003/8] by Aknori Furuta.
Mail: