TOP Linux版ダウンローダー Linux版コンバーター Solaris版 FreeBSD版 作者
「スクリプト編」は、私的なページです。
誰にでも使いこなせるものではなく、「個人メモ」的なのですが、なんとはなしにHP化してしまいました。
![]() ■ スクリプト版 Windowsでなくとも使えるモノ、として、各種スクリプト版を用意しました。 …何で“各種”にする必要があるのかですって? それは・・・・・、単に私がやってみたかっただけのことです。 言語が違うだけで、どれも同じ動きをするものなのですが・・・。(^^;) Perl版へ Ruby版へ Python版へ ![]() ■ wgetコマンドの話 (正規表現含む) 正規表現指定ですが、(ある程度までは)問題なしです。 ドキュメントによると、wgetのAオプションは、あくまでも“拡張子”を指定するものではあります。 が、何とはなしにファイルにも(ある程度までは)対応しているようです。 wget -c -r -A haruka_igawa[0-1][0-9].jpg http://igawa1.netfirms.com/haruka_igawapage1.htm ワンライナーで、簡単にダウンロードが出来てしまいました。(^^;) ・・・・・尤も、ループ型のスクリプトにした方が、(巡回しない分だけ)ダウンロードにかかる時間を短縮する ことが出来る、とは言えます。 http://www.helloziyi.us/Galleries/mtv-movie-awards2005.htm ![]() ↑このサイトを使って、もう少し試してみました。 中の画像に、ちょっとしたファイル名の例外があったので、「正規表現」の実験をするのに便利と思いました。 例外というのは、 zhang_ziyi_mtv_movie_awards05-hq01-thumb.jpg zhang_ziyi_mtv_movie_awards05-hq02-thumb.jpg ・ ・ ・ zhang_ziyi_mtv_movie_awards05-hq21-thumb.jpg zhang_ziyi_mtv_movie_awards05-hq01.jpg zhang_ziyi_mtv_movie_awards05-hq02.jpg ・ ・ ・ zhang_ziyi_mtv_movie_awards05-hq21.jpg などの系統だったファイル名が並ぶ中、他に「例外ファイル名」として zhang_ziyi_mtv_movie_awards05-hq01a.jpg zhang_ziyi_mtv_movie_awards05-hq02a-thumb.jpg zhang_ziyi_mtv_movie_awards05-hq02a.jpg zhang_ziyi_mtv_movie_awards05-hq12a の4ファイルが存在しているという・・・。 これを「正規表現」を使ってダウンロード出来るか、試してみました。 @wget -l 2 -r -A zhang_ziyi_mtv_movie_awards05-hq[01][0-9]a?\.jpg http://www.helloziyi.us/Galleries/mtv-movie-awards2005.htm →ダメ。 Awget -l 2 -r -A zhang_ziyi_mtv_movie_awards05-hq[01][0-9]a?.jpg http://www.helloziyi.us/Galleries/mtv-movie-awards2005.htm →ダメ。 Bwget -l 2 -r -A zhang_ziyi_mtv_movie_awards05-hq[01][0-9]a*.jpg http://www.helloziyi.us/Galleries/mtv-movie-awards2005.htm → zhang_ziyi_mtv_movie_awards05-hq01a.jpg zhang_ziyi_mtv_movie_awards05-hq02a-thumb.jpg zhang_ziyi_mtv_movie_awards05-hq02a.jpg zhang_ziyi_mtv_movie_awards05-hq12a …上記4ファイルのみ。 …@からBまでトライしてみた結果判ったこと。 「どうやらwgetでは、“*”・“+”・“?”といった“繰り返しのメタ文字”には対応していないらしい。」こと。 “*”は繰り返しメタ文字ではなく、単にUNIXの「ワイルドカード」(0文字以上の文字)のもよう。 また、“?”も同様に“繰り返しのメタ文字”ではなく、「任意の1文字」の意味かと思われる。 Cwget -l 2 -r -A zhang_ziyi_mtv_movie_awards05-hq[01][0-9].\.jpg http://www.helloziyi.us/Galleries/mtv-movie-awards2005.htm →ダメ。 Dwget -l 2 -r -A zhang_ziyi_mtv_movie_awards05-hq[01][0-9]..jpg http://www.helloziyi.us/Galleries/mtv-movie-awards2005.htm →ダメ。 Ewget -l 2 -r -A zhang_ziyi_mtv_movie_awards05-hq[01][0-9]*\.jpg http://www.helloziyi.us/Galleries/mtv-movie-awards2005.htm →(サムネイルも例外ファイルも含め)全てダウンロードされた。 Fwget -l 2 -r -A zhang_ziyi_mtv_movie_awards05-hq[01][0-9]*.jpg http://www.helloziyi.us/Galleries/mtv-movie-awards2005.htm →(サムネイルも例外ファイルも含め)全てダウンロードされた。 …上記C〜Fより、“.”も「任意の1文字とのマッチング」ではなく、単に「ドット」であるということがほぼ確定的に。 よって、エスケープシーケンスの必要なし。(使用しても問題はなさそう。) ![]() ・その他いくつか [ダウンロード可能な正規表現] wget -c -r -l 1 -A [0-9]*.jpg http://ziyiforever.primenova.com/pictures/2046/index.html wget -c -r -l 1 -A [0-9][0-9][0-9].jpg http://ziyiforever.primenova.com/pictures/2046/index.html [ダウンロード不可能な正規表現] wget -c -r -l 1 -A [0-9]+.jpg http://ziyiforever.primenova.com/pictures/2046/index.html wget -c -r -l 1 -A \d\d\d.jpg http://ziyiforever.primenova.com/pictures/2046/index.html wget -c -r -l 1 -A ^00[0-9].jpg http://ziyiforever.primenova.com/pictures/2046/index.html ![]() シェルのループ版も作成しましたので、上げときます。 incget.sh ・・・・・ 2005.10.12 これもUTF-8版です。 使い方は、 ./incget.sh [URL] [頭の数字] [お尻の数字] ([ドット拡張子]) です。 「ドット拡張子」は省略が可能で、省略した場合は自動的に「.jpg」が適用されます。 なお、“-w”オプションを指定した場合、「桁数」は「お尻の数字」の桁数に合わせる仕様です。 例) 頭の数字が「1」で、お尻の数字が「10」のとき ・・・ 01,02,03,04,05,06,07,08,09,10 頭の数字が「1」で、お尻の数字が「9」のとき ・・・ 1,2,3,4,5,6,7,8,9 [例1] http://itopix.jp/2003/saki_seto/ ・・・ ココを例にとります。 …画像の実体は http://itopix.jp/2003/saki_seto/images/01.jpg http://itopix.jp/2003/saki_seto/images/02.jpg http://itopix.jp/2003/saki_seto/images/03.jpg @「incget.sh」をダウンロード Achmod +x incget.sh B./incget.sh http://itopix.jp/2003/saki_seto/images/ 1 10 などと入力し、「ENTER」。 … 1 10 のあと、.jpg を入れても良いです。(入れる場合、必ずドット付きで!) ![]() C赤丸を付けたところをご覧ください。 ここは、「1」を選ぶか「2」を選択するかの、問いかけをしています。 とは言いましても意味が分からないかと思いますが(笑)、要はですね…。 自然数を使うときは「1」(「ENTER」)を。 「0埋めの桁数」を「お尻の数字」に合わせるときは「2」を選択します。 先の例なら、 ./incget.sh http://itopix.jp/2003/saki_seto/images/ 1 10 ですから、「お尻の数字」は二桁ですね。 なので、「2」(「ENTER」)を選択した場合、 http://itopix.jp/2003/saki_seto/images/01.jpg http://itopix.jp/2003/saki_seto/images/02.jpg http://itopix.jp/2003/saki_seto/images/03.jpg ・ ・ ・ http://itopix.jp/2003/saki_seto/images/10.jpg をダウンロードします。 逆に、「1」(「ENTER」)を選択した場合は、自然数ですから、 http://itopix.jp/2003/saki_seto/images/1.jpg http://itopix.jp/2003/saki_seto/images/2.jpg http://itopix.jp/2003/saki_seto/images/3.jpg ・ ・ ・ http://itopix.jp/2003/saki_seto/images/10.jpg と、ダウンロードしていくことになります。 上記サイトの場合、正しいのは・・・、そう。 「2」(「ENTER」)ですね。 悪い例を示します。 ./incget.sh http://itopix.jp/2003/saki_seto/images/ 1 3 .jpg 本スクリプトの場合(他のやつは別ですよ!)、このやり方ではダウンロードできません。 何故ならば、ファイル名の数字部分が「01」〜「03」であるからです。 本スクリプトには「0埋めの桁数」指定がありませんので、代わりに「お尻の数字」で指定することになります。 ./incget.sh http://itopix.jp/2003/saki_seto/images/ 1 10 としてやれば、 http://itopix.jp/2003/saki_seto/images/01.jpg http://itopix.jp/2003/saki_seto/images/02.jpg http://itopix.jp/2003/saki_seto/images/03.jpg とダウンロードすることになりますし、 http://itopix.jp/2003/saki_seto/images/04.jpg のところで、「Ctrl」+「c」などで中止されると良いです。 ![]() [例2] ![]() http://ent.tom.com/xiezhen/yidongmeiguan/index.php このサイトの場合は、画像ファイルが自然数で1ずつインクリメントされていきますから、「1」(「ENTER」) を選択することになりますね。 逆に、「2」(「ENTER」)を選択すると、 http://img.ent.tom.com/images/zhuanti/yidongmeiguan/d/100.jpg http://img.ent.tom.com/images/zhuanti/yidongmeiguan/d/101.jpg の、2画像しかダウンロード出来ないことになります。 [ひとりごと] これやっていて思いましたが、「ゲッター画像G」で採用している「ドット拡張子」欄と「数字以降の文字 列」欄を分けるっていうの・・・、意味無かったですね。 両方をまとめて「サフィックス」欄とでもして、例えば ./incget.sh http://itopix.jp/2003/saki_seto/images/ 1 10 picture.jpg などと入力すれば良いわけで…。 (↑このアドレスは実在しません。) 尤も、「ドット拡張子」欄と「数字以降の文字列」欄を分けた方が、初心者ライクではありますけど。 しかし・・・。 PerlやRuby、Pythonで「ゲッター画像G」と同じ動きをするものを作ってきましたが、シェルは何と易しい のでしょう。 便利ですねぇ〜。 シェルは・・・。 ![]() ☆Linux その他のディストリビューションでの動作確認 1.Debian(Debian系代表…そう言えば、「KNOPPIX」で散々検証していましたっけ。) 「Debian」でもそのまま使えます。 ![]() 「Debian」のKDE画面。 ![]() Debianはデフォルトで「Ruby」がインストールされないようです…。 それ以外は特に問題なし。 2.Plamo(Slackware系代表) ![]() 「Plamo」の「AfterStep」画面…。 「AfterStep」とは、「NEXTSTEP」ライクな画面のことです。 (「WindowMaker」もそうですけれど。) …それにしても、オタッキーなデスクトップ画面ですね。(笑) 私の見るところ、「Linux」の中で最も個性派なのは、この「Plamo」ではないかと…。 ![]() デフォルトで「Ruby」と「ImageMagick」がインストールされていないようでした。 それ以外は問題なし。 3.Suse ![]() 「SUSE」は「RedHat」に次ぐシェアに、つけてきたようです。 なので、試してみました。 ![]() http://www.hicelebs.com/gallery/seto_saki/index.html です。 実は私、「SUSE(スーゼ)」をまともに使ってみたのは今度が初めて。 ちょっと動きが重い感じがしましたが、用途がクライアントなら、なかなかのお薦めです…。 (デフォルトの壁紙が爬虫類系だったのには、ゲンナリしましたが…。) 「SUSE」はデフォルトでやはり、「Ruby」が入っていませんでした。 インストールは「YaST」から簡単に出来るのですが、ちょっとクセがあって、正統的にコマンドを 叩かないと(「Ruby版」は)動作しません。 それから、「ImageMagick」も「YaST」でインストールする必要があります。 それ以外のスクリプトの動作には、まったく問題なし。 ![]() ちなみに、「Suse」は「YaST」から簡単に「LVM」の設定をすることが出来るようです…。 (私はまだ試していませんが。) ![]() 「画像一括変換スクリプト」のページもお楽しみください。 ![]() Perl版へ Ruby版へ Python版へ ![]() |