近デジ PDF一括ダウンローダー 自動版 一応完成

 ちょっとだけ気が向いたので、前回作ったモノを改善。

 追加したのは、
  1. PIDだけではなく、近デジの検索画面で張られるURL(http://kindai.ndl.go.jp/info:ndljp/pid/ほにゃらら)を入れたら、最後の/の後ろの「ほにゃらら」をPIDと見なして受け入れるようにした。
     自分で使ってみたら、ブラウザで検索画面を使っていて「お、これはおもしろそうだな」と思ったら、文書のリンクをそのままコピーしてコマンドラインに貼り付けるという方がラクだと気づいたので(気づくのが遅い)。

  2. PDFの結合。
     別DLLが必要になるのでちょっと迷ったが、iTextSharpをそのまんま使わせてもらった。
     最新版のVer 5.3.0でも、いわゆる「Web表示用に最適化」(Linearized PDF)には対応していないらしいのがちょっと残念だが、ローカル保存・ローカル閲覧が主目的なので無問題。
     これで、今まで使っていなかった文書名や作者名から、ファイル名を生成すると同時にPDFのプロパティに突っ込むことにした。iFilter経由で検索に使う予定。


 ブラウザで近デジ検索画面で検索して、一括DLしたい文書のURLをコピペして、バッチファイルを作成する。


TEST_KinDigDL.exe http://kindai.ndl.go.jp/info:ndljp/pid/ほにゃらら
TEST_KinDigDL.exe http://kindai.ndl.go.jp/info:ndljp/pid/ほげほげ
……


 で、適当な時間(寝てるときでもいいのだが、処理的にはスリープしてる時間の方が圧倒的に長いので、パソコン使ってる裏ででも特に痛痒感は感じない)に、このバッチファイルを動かすと、いつの間にやら本毎にPDFができているという寸法である。

 元々汚かったコードがますます汚くなったキライはあるが、個人的には結構ラクになった。
 で、いきおいで80冊くらいダウンロードしてしまったのだが、よく考えたら、こんなに読む時間がないや(爆)

 のんびりとだが、目を通せて面白かったモノは、今後このブログのネタにするつもり。
[PR]
by signal-9 | 2012-07-20 16:27 | TIPSとかKludgeとか | Comments(3)
Commented by くらひと at 2012-07-22 02:02 x
こんにちは。はじめまして。大変興味深く一連の記事を読ませていただきました。私も(初心者なものでナデシコなるものを用いて)近デジダウンローダを作ってみたものの、「目次情報」「著者情報」の取得についてがよくわかりません。他言語ではありますが、少しく解説をお願いできないでしょうか。
Commented by signal-9 at 2012-07-23 10:30
くらひとさん、こんにちは。

 私は今のところ、その文書の表示画面をいちいち読むようにしています(最終コマ番号を取得するために読んでいるので、そのデータを利用しています)。

 例えば、
 http://kindai.ndl.go.jp/info:ndljp/pid/1137942
 「タイトル」・「著者」・「出版者」などは、 class="simple-metadata-list"(簡易表示用)あるいは class="detail-metadata-list"(詳細表示用)となっていますから、そこを読み取ればよいように思います。

 「目次情報」(がある場合)は、<ul class="ndltree">の下にそれらしきものがあります。
 たぶん、この class の startContentNo が目次(PDFでいえば「しおり」)位置なのではないかと思います。
 現時点で私が失敗しているのは、あまり深く考えず単なる正規表現による文字列検索でここを処理してしまったことです。

 パターンが色々あるようなので、やはりきちんとhtml(XML)として解釈すべきです。
 同じ轍を踏まないように、がんばってください。
Commented by くらひと at 2012-07-23 17:24 x
ご丁寧にどうもありがとう御座います。まだあまり理解できていないのですが、参考にさせていただいていろいろとトライしてみます!
<< 近デジ PDFダウンロード 「... 近デジ PDFで全部ダウンロー... >>