試される大地から

furaiboが送る技術ブログ。プログラミングのTipsなど書いていきます。

EHDownloader(E-Hentai.org画像ダウンローダ)完成


お久しぶりでございます。
学校の研究で忙しくて、更新をサボっていたfuraiboです。


さて、今回はすっかり放ったらかしになっていたE-Hentaiダウンローダの話です。


geektrainee.hatenablog.jp



以前に公開したものはPythonがよくわかっていない時に書いたものなので、
機能不足でコードも汚いものでした。


そこで、今回はPython3で全面的に書き直し、
さらに機能も充実させました。


今回、cx_freezeを利用することにより
Windows用の実行ファイルを作成しましたので、
Python環境のないWindowsユーザでも利用可能です。



コードは以下のGitHubリポジトリで公開しています。

github.com



機能


今回追加した機能としては、

  • ダウンロード途中再開機能
  • ファイル破損チェック機能
  • 複数URL指定機能

などです。


ダウンロードをCtrl+Cなどのコマンドで途中で中断した場合でも、
定期的に情報をなどをJSONファイルに書き出していますし、
さらに、コマンドでの中断を検出してそこでも情報を書き出すので、
中断時点からダウンロードを再開することができます。
もし、意図しないシャットダウンや停電があった場合でもOKです。


また、E-Hentai.orgのページでは画像ごとにファイルサイズの情報を
取得できるので、ダウンロードが済んだ画像についてサイズのチェックを行い、
ファイルサイズが不正であれば、ダウンロードをやり直すようにしています。


ファイル名やファイルサイズから、取得済みの画像であると判断した場合には、
ダウンロードをスキップして通信量を節約します。


ちょっと手間が必要ですが、複数のURL指定も可能です。
このやり方については"発展的な使い方"のセクションにて、説明します。



ダウンロード


GitHubリポジトリからzipファイルをダウンロードします。

https://github.com/furaibo/EHDownloader/tree/master/download



"EHDownloader_Windows.zip"をクリックすると、以下のような画面に移ります。

f:id:incodethx3932:20151114155229p:plain


ここで、"This file has been truncated, but you can view the full file."
という記述が見えるかと思います。


このとき、"view the full file"のところがリンクになっていますので、
これをクリックしましょう。すると、zipファイルのダウンロードが開始されます。


ダウンロードしたzipファイルはひとまず、
すぐ使えるようにデスクトップに展開しておきましょう。
すると、"EHDownloader"フォルダができます。これで準備完了です。



基本的な使い方


まずは最も簡単な使い方から解説します。
まずは、デスクトップに展開した"EHDownloader"フォルダを
クリックしてみましょう。


f:id:incodethx3932:20151114161636p:plain


ehdownloaderという実行ファイルがあります。
これをクリックします。すると、コマンドプロンプトが開きます。


f:id:incodethx3932:20151114162217p:plain



URLの入力待ち状態になりますので、E-HentaiのURLを入力するのですが、
実はそのままだとペーストできませんので、


コマンドプロンプトの上部を右クリックして、
『プロパティ』をクリックした後、ウィンドウが開きますので
『簡易編集モード』のチェックボックスにチェックしてください。


詳細は以下のページにあります。

あれっ?コピー&ペーストができないよ!?コマンドプロンプト画面でテキストをコピー&ペーストする方法



ここまで来るとペーストができるようになります。
ダウンロードを行いたいE-Hentai.orgのページURLをコピーし、
コマンドプロンプトにペーストし、ダウンロードを開始します。


f:id:incodethx3932:20151114163501p:plain



以上のような画面が出てくれば、ダウンロードが正しく開始されている
ということになります。


もしもWindows Powershellが使えるのであれば、
コマンドプロンプトよりもそちらのほうが便利に使えます。


入力するURLについてですが、一番最初のページでなくても、
ギャラリーの途中のページでも構いません。


ダウンロードされた画像は、『ピクチャ』フォルダ内に、
『E-Hentai_downloads』というフォルダが新規作成されますので、
そこに保存されます。


もちろん、全部の画像が一緒くたになるのではなく、
タイトルごとに別フォルダが作成されて、整理されます。



発展的な使い方


上のような使い方は手軽ですが、この場合は
複数のURLから一気にダウンロードを行うことができません。
そこで、もう少し発展的な使い方をしてみます。


この際、

が必要となります。


まず、URLを記したテキストファイル"sample.txt"をデスクトップにおいておきます。
例えば、以下のように記述します。

http://g.e-hentai.org/g/123456/hogehoge/piyopiyo
http://g.e-hentai.org/g/114514/tadokoro/24student
http://g.e-hentai.org/g/364364/miura/pochama


以上のURLは適当なものですが、実際にはちゃんとしたE-Hentai.orgの
ページのURLを入れてください。また、必ずしもURLを記したファイルの名前は
"sample.txt"でなくても構いませんし、拡張子が.datなどでもOKです。
各自で任意の名前をつけてください。


テキストファイルの作成にはメモ帳や各自好きなテキストエディタ
を使うといいでしょう。


そして、コマンドプロンプトで、デスクトップまで移動してみます。

f:id:incodethx3932:20151114170503p:plain


これで、ダウンロードの準備は整いました。
以下のようにして連続ダウンロードします。

C:¥Users¥(YourName)¥Desktop>EHDownload¥ehdownloader.exe -f sample.txt


すると、ダウンロードが開始されます。


f:id:incodethx3932:20151114184350p:plain


List of Remaining URLの表示の後に、
ダウンロード待ちのURL一覧が複数表示されます。
これで正しくファイルが読み込まれていることを確認します。


このように、コマンドプロンプトからの実行時、
\-fオプションの後にURLを入力したテキストファイルへのパスを記述すると、
URL入力を待たずに連続ダウンロードをすることが可能になります。


また、複数のテキストファイルを入力にすることができます。
例えば、sample2.txtもデスクトップ上に作ったと仮定します。

C:¥Users¥(YourName)¥Desktop>EHDownload¥ehdownloader.exe -f sample.txt sample2.txt


このように、続けて入力を与えることが可能です。



オプション

コマンドプロンプトなどのコマンドラインでのオプションは以下のとおりです。

  • -i ... 利用方法を表示
  • -h, --help ... 利用方法とヘルプを表示
  • -u, --url [URL] ... このオプションのあとに続けたURLを入力とする(複数入力可)
  • -f, --file [ファイルパス] ... このオプションのあとに続けたURL記載ファイルを入力とする(複数入力可)
  • --retry (秒数) ... 帯域制限によるダウンロード中断時のリトライ上限 (デフォルト値: 3回)
  • --sleep (秒数) ... 帯域制限によるダウンロード中断時のスリープ時間 (デフォルト値: 900秒)
  • --interval (秒数) ... 次の画像のダウンロードまでの間の休止時間を指定する
  • --no-resume ... 前回中断のダウンロード再開を無視して、新しいダウンロードを開始する
  • --no-numbering ... ファイル名として数字を使わず、ダウンロード元のファイル名のままで保存する
  • --no-filecheck ... ファイルサイズのチェックを行わない(※非推奨)
  • --no-backup ... バックアップ用JSONファイルを作成しない(※非推奨)

注意事項

  • アプリケーションの実行時にはアンチウィルスソフトによって、不審な通信が行われている判断され、通信が遮断される可能性がありますので、アプリケーションの実行や通信を許可するなどの設定を各自で行ってください。
  • ダウンロードするギャラリーに含まれる画像が多い場合は、ダウンロード規制回避のため、枚数が増えるほど次の画像ダウンロード開始までの間隔が長くなります(最長でも5秒)。ご了承ください。
  • EHDownloaderフォルダのファイル構成をいじったり、ファイルのリネームを行ったりしないようにしてください。
  • フォルダ内にあるファイルはすべてアプリケーションの実行に必要なものなので、不要そうだからと削除することのないようにしてください。
  • "ehdownloader"と名前のついた実行ファイルのみをフォルダ外に移動してしまうなどといったこともないようにしてください。移動をするときはフォルダ丸ごとでお願いします。実行ファイルへのショートカットの作成は問題ありません。
  • 機能追加の要請への対応や、使い方についてのさらに詳細なレクチャーの希望には応えられませんので、あしからず。