ラベル JavaScript の投稿を表示しています。 すべての投稿を表示
ラベル JavaScript の投稿を表示しています。 すべての投稿を表示

2010年6月27日日曜日

Web漫画を保存する

Web漫画はネット上にいっぱいあって、まだまだ、収集は終わらない。
どんどん、iBooks化して、iPadに溜め込んでるけど、ぜんぜん終わらない。
漫画によって置き方がバラバラで、それぞれ手を入れないとなかなか上手くいかないから。

で、今回はちょっとしたテクニックの紹介。

Web漫画はイロイロな形でページに置かれる。種類はだいたいこんな感じ。
  1. html に画像が貼ってあるだけ。
  2. JavaScript プログラムで画像だけ表示切替え。
  3. Flashを使ってヴューワーを起動して画像を表示。
  4. Flashを使ってビューワーを起動してストリーミングで画像を表示。
  5. Flashを使った謎のプログラム。
1がほとんどだけど、企業サイトとはは、4と5が多い。これは簡単にコピーされないようにするため。
そういったものは画面に表示されているときに画像キャプチャソフトで撮るしかない。
3の場合はフラッシュとして保存すれば、画像を吸い出すことができるツールがあったりする。

で、「画像一括ダウンロード!」っぽいソフトの類は1しか画像のゲットはできない。
2以降はリンクがhtmlに埋め込まれてないから。

で、2の場合は、表示された画像をエクスプローラにドラッグすればコピーできるけど、全部のページでそれをやるのは面倒だし、漏れがないか気になるし、それに画像にリンクがあるとファイル名がリンク先になってしまうので困る。

そこで、コミックスクリプトという良く使われるスクリプトの場合だけだけど、簡単に保存できる方法を説明する。

コミックスクリプトは、ファイル名がかならず、1.gif ~ 32.gif みたいな感じで単純な数字の連番になっている。
gif だったり、pngだったり画像形式は決まってないみたいだけれど。

さて、画像ファイルがどこに入っているのか見てみよう。

IEのだと、最初のページを表示させた状態で、画像を右クリックして表示されるメニューから「プロパティ」を選ぶと、ダイアログが表示されて、アドレス(url)が表示される。

Chrome だと、右クリックメニューから「画像URLをコピー」でURLがクリップボードに入るのでどこかにペーストして見てみるといい。

ここに画像が連番で入っている。

で、こいつらファイルをローカルの HTMLファイルで表示させる。

次の HTMLファイルをローカルに作る。

<html>
 <body>
  <script>
  tpage = 1; // 最初のページ番号
  epage = 32; // 最後のページ番号
  url = "http://xxxxxx.net/xxxxxx/ep1/" ; // 画像が置いてあるURL

  for( i=tpage; i<=epage; i++ ){
   document.write("<div>" );
   document.write("<img src='" + url + i + ".jpg'>" );
   document.write("</div>" );
  }
  </script>

 </body>
</html>

ファイル名は何でもいい。拡張子は ".html"で。

さっき見たURLから最後のファイルのところだけ削って、url = のところに書く。
ページを開くと最後のページ番号が書いてあるので、それを epage = のところに書く。
.jpg になっている画像の拡張子は、必要ならば正しいものに書き換える。

次に、このファイルを保存してブラウザで開く。
そうすると、全部の画像が一つの画面に表示される。

あとは、これをブラウザの機能を使って画像ごとファイルに保存する。
そうすると、画像だけ新しいフォルダに全部入る。

と、こんな感じでゲットする。
章ごとに分かれてフォルダに入っていることが多いので、それぞれのフォルダごとにこのファイルを作って保存する。

あとは、これらの画像を使って epub 形式に作るのだ。