ぴくぴくダウンローダ for Java(仮) 正式公開

計画していた全ての機能を実装したので正式版として公開します。

新しい機能
・コマンドベースで詳細な条件(日付の指定など)を指定し操作が可能になりました。

推奨環境:Core2Duo以降のデュアルコアCPU搭載のパソコン
動作環境:Windows MacOSX Linux でJavaが動作する環境

Windows 7 での実行の様子

コマンドモードでの実行の様子

Download
こちらのダウンロードページよりダウンロードをお願い致します。

Leave a comment ?

37 Comments.

  1. 日付指定実装していただけましたか!ありがとうございます。
    最近気づいたのですが、日付指定の期間は1ヶ月以内にしないと
    それ以前の古い画像が検索結果に反映されないようなので
    その旨をreadmeに書いていただければ幸いかと思います。

  2. 今回オープンソース化されないとのことで残念に思います。まあ、先日はパッチ投稿させていただきましたが、今後はGUIのPixPixDownloaderと、シンプルさと拡張性を追求したPicrawlerとで別々に進化していければと思います。

    #日付指定を含め、引数を自分で追加できる機能は入れようかな–;

  3. 要望なのですが
    Windows起動時にタスクマネージャーで表示される実行プロセス名を
    Javawではなく、プロセス名にして欲しいです。
    現在のバージョンであればPixpixDownloader.exeとしてほしいです。

    まだ起動確認しただけでダウンロードは試していませんが
    私の環境win Vista_x64 Java7.05ですとぴくぴくのアルファベット以外の部分等が文字化けして正常に表示されませんでした。

    • JavaはJava Virtual Machine上で動作します。
      そのため必然的にプロセス名がVMのJavaw.exeとなってしまいます。
      これは当プログラムと言うよりはJava言語の仕様なので対応することは難しいかと思います。

      なお、文字化けに関してですが当方の環境ではJava 6で動作させているためおそらくJavaの仕様が関係しているかと思います。バージョンにつきましては後で調査したいと思います。

      • 返信有り難うございます
        >必然的にプロセス名がVMのJavaw.exeとなってしまいます。
        これは当プログラムと言うよりはJava言語の仕様なので対応することは難しい

        この点に関してですが、
        私の知る限り少なくとも2つオリジナルプロセスで起動できているものがありました。
        一つは、V2Cです。
        http://v2c.s50.xrea.com/manual/win.html

        もう一つは、FreeRapidDownloader(FRD)です。
        http://wordrider.net/freerapid/download.html

        いずれも先ほど書きました同じ環境でJavaw.exeではなくオリジナルプロセスとして
        表示されます。

        取り急ぎ失礼いたします。文字化けの間にしてはのちほどまた失礼いたします。

        • 調べさせて頂いたところ、それらのプログラムもJava(jar)自体はjavaw.exeで動くようです。
          jarをexe化し、キックする際に何らかの方法にてプロセス名を指定している様ですが、詳細は不明です。
          なお、複数OSに対応するため”Windowsのみこの仕様”というような事はできる限り避けたいと思います。
          管理し難くなる状態は極力避けて行く方針を取らせて頂いておりますのでご了承ください。

          • >なお、複数OSに対応するため”Windowsのみこの仕様”というような事はできる限り避けたいと思います。

            そうですか残念です。
            手元にWindows環境しかないのですがjavaw.exeが表示されオリジナルプロセス名で
            表示されないのはWindowsだけの仕様なのでしょうか?
            複数のJavaベースのアプリケーションを起動する際に
            管理が煩雑になるのがWindowsだけならいたしかたないところですか。

    • 先程Windows 7 Java 7.05の環境にて動かしたところ特に文字化け等のような問題は発生しませんでした。

      • 遅くなりました。

        http://www1.axfc.net/uploader/Sc/so/355518.png
        こちらに一応もう一度試した結果やはり文字化けしたので画像をおいておきました。

        また念のためインストールしてるJavaのバージョンですが
        jre-7u5-windows-i586 32bitアプリのようなのでこちらです。

        • 画像を見て思いましたが、一部だけ文字化けということはもしかするとフォント(Lucida Grande)が無いのかもしれませんね。(OS違いの影響?)
          ここの部分だけフォントを変更しておりました。フォントがあるか確認をお願い致します。

          プロセスについてですがMacはプロセスを確認する手段が標準で複数存在(topコマンド、アクティビティモニタ)しjavawコマンドも無いため単純に比較は出来ませんが、やはりtopコマンドで確認する限り後ろではJavaApplicatという名前で動いているようです。ちなみにLinuxはjavawだと思います。

    • Java 6の環境ですがVistaでの実行環境があったため動作確認を行ったところ特に文字化け無く動作している事が確認されました。
      ※ フォント(Lucida Grande)は入って無いようでしたが文字化けは発生していませんでした

      おそらくですが、お使いのパソコンの環境に何らかの問題がある可能性が高いかと思います。他の手持ちのパソコンで動作を確認して頂けないでしょうか。

  4. ・Perl版はLinuxの場合shebangを使うためpgetと表示されますが、WindowsやOSX(おそらくFreeBSDも)ではperlと表示されます。Java版はそもそもshebangが存在しないのでjavawと表示されるより致し方ないですね。Process Explorerというソフトを使えばプロセス一覧をツリー表示できるのでそのjavawがpixpixDownloaderから起動されたものであるかはわかると思います。
    http://technet.microsoft.com/ja-jp/sysinternals/bb896653.aspx
    ・えーと…V2Cはjvm.dllをロードしJNI_CreateJavaVM()を呼び出すことで起動していることがわかりました。Linuxだと$JAVA_HOME/jre/lib/i386/client/libjvm.soでしょうか。ただ、まあ、その方針を採用した場合管理が若干やりづらくなることは否めません。
    ・Lucida Grandeにフォントを設定しているとのことですが、Lucida Grandeは欧文フォントですのでフォントリンクがなされていないと文字化けするのではないかなと思います。Java7だとだめだとか…?

  5. OSX Snow Leopardでは文字化けしませんでした。Linux(Debian Wheezy)は以下のとおりです。
    JAVA_HOME=/usr/lib/jvm/java-6-oracle /usr/lib/jvm/java-6-oracle/jre/bin/java -jar PixPixDownloader.jar 文字化け
    JAVA_HOME=/usr/lib/jvm/java-7-oracle /usr/lib/jvm/java-7-oracle/jre/bin/java -jar PixPixDownloader.jar 問題なし
    JAVA_HOME=/usr/lib/jvm/java-6-openjdk-i386 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java -jar PixPixDownloader.jar 問題ないがjava-7-oracleおよびjava-7-openjdkとはフォントが若干違う
    JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386 /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java -jar PixPixDownloader.jar 問題なし
    JAVA_HOME=/usr/lib/jvm/java-1.5.0-gcj-4.7 /usr/lib/jvm/java-1.5.0-gcj-4.7/jre/bin/java -jar PixPixDownloader.jar 問題なし、ボタンの形状が昔からの典型的なjavaっぽくなる

    予想に反してgcjでいけたのにびっくり–;

  6. Debian 4.0 etch での JAVA-swing用日本語フォントの設定方法
    http://blog.goo.ne.jp/shintama/e/f016a4d564a4377c119f0382d87d1d1f
    こんな事もあるみたいなのでなんとも…

    文字化けについてはとりあえず頭にはいれて置きますが悪魔でもごく一部特殊?な環境でしか起こらない様なので保留にさせて頂きます。←決定事項
    旧ぴくぴくみたいにバージョンを短期間で上げまくると他の利用者もついて来れないので。
    とりあえず今私が最も懸念する事は旧ぴくぴくのような末路を辿る事なので、それは何があっても避けたいと考えています。(;´Д`)

    ただ、他の利用者でもこの様な問題が発生する場合はお気軽にご相談下さい。
    様子を見ながら場合によっては対応を考えたいと思います。

  7. なんかまたpixivの仕様が変わったようで、なんかとりこめません。

    #同時に旧ぴくぴくも終了ですな。(自分でperlいじれればいいんですけども)
    いろいろ残念です。

  8. 変ですね,新ぴくぴくはHTMLの解析をきっちりやってるっぽいので旧よりも仕様変更耐性は高いはずなのですが.

    テーマの都合上みづらいけど,ウェブサイトへのリンク貼ってます.
    先日旧ぴくぴく利用者からメールが来た(なんでもJavaが使えない環境らしい)のでそちらを案内しましたね…

    旧ぴくぴくについては急にorbit氏がやめたのが未だに理解できないでいます…
    一般人は「旧ぴくぴくのような末路」が何をさすのかわかるのでしょうが,私はそれがわかるほど頭が良くないので諦めています(断っておきますがこの頭の良さはいわゆるお勉強ができるできないとは全く関係ありません).

    • orbit様
      別に私はorbit様を否定するつもりはないのですが,過去に何度も否定だと誤解されてコミュニティを追い出されたことがあります.
      #それが本当に「誤解」なのかも,私の頭が良くないのでわからないのですが.

      ぴくぴくについてdiscussionするなかで,私が発言するとPicralwerの話はどうしても出てしまうと思います.
      もしorbit様が不快に思われるなら仰ってください.ごたごたを起こす前に消えます.

    • cielavenir さん私は貴方を貴重な開発者仲間であると考えております。

      旧ぴくぴくの開発をやめた理由は下記のように複数あります。

      ぴくぴくは当初私の気分転換に短いスクリプトを書いたものが始まりです。そのため全く拡張を意識したものではありませんでした。そのことが原因で開発している途中からソースコードがトリッキーな状態になり作者である私が理解しずらくなっていました。随分前からバージョンアップするたびに今後開発していく上でこのような状態は本当に深刻であると考えておりました。←特にgoto文が出てきてから真剣に悩みました(笑)

      また、ノートンに誤検出されるのも大きな問題であったと言えます。連絡を入れるのもありであるとは思いましたが上記の問題からも保守が長く続くとは非常に思えませんでしたので保留にしておりました。

      そしてマルチOSに対応しているのにGUIの実装にTkのライブラリ関係の問題からWindows以外対応しきれないという問題もありました。

      それらのことからVMさえ入れば環境依存が非常に少ないJavaをベースに今後の機能拡張をなるべく行い易く実装し、同時にPerl版の開発をやめさせていただきました。

      Picralwerの紹介は別に私は構いません。私が言語を変えた時点でそれぞれの進むべき場所は変わっております。お互い今後も情報を共有しながら開発を進めて行きましょう。これからもよろしくお願い致します。

    • そして、HTMLの件なのですが新ぴくぴくダウンローダでは単純に正規表現でのマッチではなくDOM解析という手法を取っております。そのためやはりソースコードが変わってしまえば解析には失敗してしまいます。

      一応メンテのしやすさは上で述べている通りある程度前回の反省点を元に考慮されているので今後も開発を続けていけるかと思います。

      ただ、現在私自身が時間を取れないという問題があるのであと2週間ほどは対処できないかと思います。

      • 仕様が変わったと聞いたので動作検証を行いましたが当方の環境(MacOSX Lion)では問題なくダウンロードできておりますね・・・・
        ということは動かなくなったのは旧ピクピクダウンローダだけということでしょうか。

  9. 温かいお言葉感謝します。
    別のところでは「あなたはもう開発者仲間ではありません」と断言されたので、それはさすがに身に応えます…。
    #そういうことが増えると就活も億劫になるのよね^^;

    >私が言語を変えた時点でそれぞれの進むべき場所は変わっております。
    ありがとうございます。
    >Tkのライブラリ関係の問題からWindows以外対応しきれない
    たしかにそこが難しいですね。一応旧ぴくぴく最終版はUnix対応しましたが、結果的に場合分けが増えてしまったので。

    >そのことが原因で開発している途中からソースコードがトリッキーな状態になり作者である私が理解しずらくなっていました。
    そうだったのですね。

    –以下余談–
    Picrawlerはあいも変わらず正規表現を使っているのですが、
    pcrawl(フロントエンド)
    Picrawler.rb(プラグインローダー。これ自身はmode_list/open/call_first/call_next/crawlのメソッドを提供する。call_*はプラグインのmember_first()やらtag_first()やらを呼び出す。接頭辞はコマンドラインから指定するが、その一覧はローダーのmode_list()、プラグインのlist()から取得することが出来る)
    Picrawler/*.rb(プラグイン。list/open/*_first/*_next/crawlの本体。firstとnextがHTML解析、crawlがファイルのダウンロードを担当する)
    と、拡張性を意識した設計にしたので、メンテ不能になることはそうそうないかなとは思っています。
    フロントエンドはプラグインローダーを呼んでいるだけなので、別のフロントエンドを使うこともできます。私のやる気次第ですがGUIフロントエンドを追加することも可能です。バッチファイルから巡回用に使うことを旨としているので可能性は低いですが–;

    #あ、独自パラメータをどうやって渡すかという問題がまだ解決できていなかったり…プラグインモジュールを継承することで*_firstと*_next以外の記述を省略できる(んでその2つも元プラグインからコピペしてパラメータをリテラルで埋め込む)ことはできるのですが。

    #Perlだと、一応&$funcname()で動的に関数名解決できるのかな。
    #私が思うにPerlのOOは後付けでああ云う仕様になったから正しく作るのが難しいというか…使う分にはいいのですけどね。

  10. 旧ぴくぴくはすでに廃棄してしまっていましたが、利用者から直して欲しいと送られてきたので今読み返してみました。Picrawlerではリファラの扱いを厳格でなくし、たとえばDanbooruならdanbooru.donmai.usに固定することでMechanize::back()を不要にしたことが功を奏した気がします。何回back()しないといけないか数えるのは意外と面倒だったりしますから。

  11. 『ぴくぴくダウンローダーβ版』共に、便利なツールを提供くださって、大変助かっております。

    ところで最近、ピクシブの仕様が変わったらしく、併用していたピクピクダウンローダーが、使えなくなりました。
    今後は『ぴくぴくダウンローダーβ版』の、バージョンアップはしないと言うことですので、『ぴくぴくダウンローダ for Java(仮)版』をバージョンアップされる際に、お願いしたい事があります。

    ピクシブ投稿者の方の中には、描き貯めていたイラストを一気にUPされたり、長期間、間を空けて投稿する方がいらっしゃいます。
    『ぴくぴくダウンローダーβ版』の場合には、ID番号だけでなく、ピクシブネームを付けていても、ダウンロード先のフォルダを指定する事が出来てきていたので、ダウンロードできましたが、『ぴくぴくダウンローダ for Java(仮)版』の場合には、ID指定で自動で作成されるフォルダにダウンロードするか、もしくは、既にあるフォルダのピクシブネームを一度削除してから、ダウンロードしています。
    (ピクシブ投稿者の中には、複数のIDを使用していたり、頻繁にピクシブネームを変える方がいらっしゃいますので、私はID番号だけのフォルダ名では混乱してしまうので)

    次回バージョンアップされる際には、自動で作成されるフォルダの他に、ダウンロード先のフォルダを指定できるようにしては頂けないでしょうか?

    『ぴくぴくダウンローダ for Java(仮)版』の仕様を見る限りは難しいと思いますが、是非ご一考願います。

  12. コマンドベース版をありがたく使わせていただいておりますが、
    昨日急に期間指定ダウンロードできなくなりました。

    吐かれたログ見ると、最近のIDの画像リンクがあったので
    どうやらショーケースの画像を落として動作停止しているようです。
    仕様変更が原因なのかこちらの環境が原因なのか不明なので、
    他の環境でも同様の症状が起こるかどうかテストしていただけると助かります。

    • btestさん こちらでも実験してみたいのでよろしければその問題が発生したパラメータを教えて頂けないでしょうか。

      • >java -jar PixPixDownloader.jar is 東方 2010-10-11 2010-10-20 0 0 140 1000
        です。
        何度か試してみたところ、検索結果通りの画像をダウンロードすることもありますが、
        相変わらずショーケースの画像もダウンロードしています。
        よろしくお願いします。m(_ _)m

        • btest さん
          一応当方の環境では問題なくダウンロードできているようです。

          ただ、ショーケースの中身までダウンロードしてしまうのは現在仕様となっております。
          この点は現在、今後使用変更するか検討中です。

          • ショーケースのダウンロードは仕様でしたか。ありがとうございます。
            動作停止はこちらの環境の問題だったようで、
            今確認してみたところ、ショーケースの画像をすべて落とした後に
            検索結果通りの画像をちゃんと落としてくれました。
            特に支障は無かったので、こちらの早とちりだったようです。すみませんでした。

  13. いつもお世話になっております。

    いままで古いバージョンのものを使わせていただいていて、
    最後の日付で5/18まではダウンロードできていたのですが、
    ある日から突然ダウンロードができなくなりました。

    そこで正式版をダウンロードして使ってみたのですが、やはり結果は同じでした。

    友人にも試してもらって、検証を行った結果、
    ユーザーID指定のほうだときちんとダウンロードできるのですが、
    キーワード指定のほうだと巡回はするのですがダウンロードをしてくれない状態です。

    環境をどこまで書けばいいのか解らないのですが、私がwindows7 32bit、友人が同64b itなので、
    そこは関係ないと思われます。

    ご多忙な中お手数をおかけしますが、何か「これが原因では」と思われるものがあれば教えていただければ幸いです。

    • 一応MacOSX(Lion)やWindows7(64bit)の環境で動作を検証いたしましたが問題なく動作しているようです。

      一応ですが、アカウントを変えて動作を確認して頂けないでしょうか。

  14. ところで,旧ぴくぴくは_sからフルサイズURLを推測していましたが,新ぴくぴくでもその部分の挙動は同じでしょうか.
    #Picrawlerで,tinamiはサムネイルのURLからフルサイズのURLが推測できないので/view/IDを取得するようにしているのですが,それはあくまで例外.

    • ciel さん
      いえ、新しいぴくぴくダウンローダは解析したDOMから完全にブラウザと同じ挙動を行うようにしています。

  15. ご回答ありがとうございました。

    駄目もとで新規IDを取得してみたところ、
    無事に単語検索でもダウンロードできるようになりました。

    結局のところ(私には)原因はよく解らないのですが、
    (ログインはできるので、IDやパスワードが間違っているということはありません)
    これからも使用させていただきます。

    遅くなりましたが、便利なソフトの開発、配布をありがとうございます。

  16. なんか他の方がやっていたように、別IDを取得したらJava版は取り込みできました。
    旧ぴくぴくは試してないですけど。

    とりいそぎ。
    #でも古いIDだとだめって普通に不思議なんですけど。

    • 私もAutumnさんと同じ現象が起きました。
      そこで新規アカウントを取得し、ぴくぴくを再設定したのですが、変化なしでした。
      ちなみにOSはVISTA SP2 64bitです。
      よろしくお願いします。

Reply to 銀梢 ¬
Cancel reply


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(Spamcheck Enabled)

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)