2014年08月31日

「小説を読もう!」「小説家になろう!」一括ダウンローダ ver 2.37



ver2.37を作成しました。
.Net Framework 4.5.1に変更しました。
・Download中にエラーが発生しても無視する処理を追加しました(一部)

機能的な追加はないので、ver2.37で困らない人は無視して問題ないです。
Windows8.1の人は少しはましになるかも。
PCを新しくWin8.1にしたら、.Net3.5のインストールがこけて面倒なので変えただけです。

◆ver2.xからのバージョンアップ用(NovelDLフォルダをそのまま上書きしてください)
NovelDL_v2_37_bin_update.zip
※上書きの前に、バックアップをお勧めします。
※Update版が動かない場合は以下を確認してください。
・ファイルの上書きする前に、Dataフォルダ以外は一度きれいに消してください。
・ZIPをダウンロードしたら、ファイルのプロパティーから[ブロックの解除]をしてください。

◆プログラム(新しく使う人 or ver1.xからの上書き)
NovelDL_v2_37_bin.zip

◆ソースコード
NovelDL_v2_37_src.zip

★「動作を停止しました」が出る人。
以下の方法で動いたとのコメントをいただいております。
1)管理者として実行する
2)バックアップタブで最適化を選択
そういえば、開発(Win7 64bit)&テスト環境(Win8.1 64bit)は管理者権限を持ってるとか思ってみたり。
ただ、管理者権限で動くというのはフォルダの権限が足りないか、Program Files系のフォルダに突っ込んでるのではないかなと想像します(違うかも)
posted by w033 at 08:12| 東京 ☁| Comment(21) | TrackBack(0) | プログラム | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
エラーで止まっていたのですが、更新して動くようになりました。
ありがたく使わせていただきます。

なお、自分の環境ですが、Windows7SP1(64bit)、IE9となります。

イベントログを見たらCLR20r3といのがあり、.net関連が要因みたいなので、入れ直しとかを試したのですが直らなくて困っておりました。
Posted by at 2014年08月31日 13:34
先に記載した者です。
一括ダウンロードは問題なかったのですが、新規登録でエラーで止まるのは直っていなかった...
VistaSP2(32bit)IE8の装置ではver2.36でも問題なかったので、新規登録時はvista装置で行うことで回避します。
Posted by at 2014年08月31日 16:13
v2.36の2014年09月01日 00:29です
私もダウンロードは問題ないのですが登録でエラーが出てしまいます。
OSはvista 32ビット SP1です。
Posted by at 2014年09月01日 00:39
いつもお世話になっております。
久しぶりにDLしようと思ったらエラーで難渋しましたので、ver.UPは有り難いです。

なかなか上手くいかず、注釈を見ながら試行錯誤で出来るようになりました。

ありがとうございました。
Posted by HAL at 2014年09月02日 22:58
8/31 13:34、16:13のコメントを書いた者です
思考錯誤した結果なのか、何かの拍子なのか判りませんが、Win7装置でも追加登録できるようになりました。

やったこと
Access Runtime2010とAccess Runtime 2007をインストール、その後WindowsUpdateの自動更新を2回

昨日まではWin7装置では登録時にエラーが出ていたのですが、今日UpDate後試したらエラーが出ずに登録できました。

自分の場合はたまたまの可能性もありますので、試す場合は自己責任で行ってください。
Posted by at 2014年09月05日 21:55
novelDLなのですが、ノクターンのほうの作品が取得できなくなっているようなので修正をお願いします。
Posted by at 2014年11月04日 23:03
関連性はわからないのですが、小説家になろうの何作かがエラー表示になりダウンロード出来ませんでした。
お時間あるときにお願いいたします。
Posted by at 2014年12月03日 00:54
う〜ん、私も昨日の夜辺りから、何作かエラーになります。


例えば『蘇りの魔王』と『脇役勇者は光り輝く』は選択&全部ダウンロードできます。

しかし『黄昏のヴァイキャリアス(N6840CJ)』と『龍と鑑定士(N9318Y)』は選択&全部ダウンロードでエラーになります。その時のエラー表示は下記の通りです。


黄昏のヴァイキャリアスのエラー

次のエラーが発生しました。
n6840cj - 取得に失敗しました。


龍と鑑定士のエラー

次のエラーが発生しました。
n9318y - 取得に失敗しました。


と、出ます。今まで登録されていた作品で、最終ダウンロード話で各話のリストは表示されます。でもダウンロードができません。その他にもアプリには登録されているのに、Nコードが取得できないエラーの作品が……


システムの復元、セキュリティチェック、IEのリセット、ハードディスクのエラーチェック&不良セクタの修復、レジストリデフラグ、アプリの再ダウンロードと新たに作品登録しましたが、登録&ダウンロードできた作品と、登録できるがダウンロードするとエラー発生します。

師走で忙しい時期とは思いますが、何卒、対処をお願いします。
Posted by 匿名希望 at 2014年12月03日 11:56
いつも本ツールにお世話になっております。
上のお二方と同様現象が私の環境でも発生したため、発生する小説としない小説のソースを比較してみました。

当方で確認した範囲では、ソース内に<div class="koukoku_text">から</script></div><!--koukoku_text-->までの10行が含まれる作品がエラーになるようです。
(作品の目次ページ下部の「作者マイページ」等のメニューの真下の広告部分です)

こちらが原因かは不明ですが、調査の参考になれば幸いです
Posted by at 2014年12月04日 17:05
素人なりにソースをビルドしてデバックしてみました。

どうも、エラーするページだとdlタグの個数が正常に取得できない(1個多くカウントされてる)ようで、DownloadLogic.csの以下のループ箇所が一回多く回ってるみたいです。
for (int tpos = 0; tpos < dlTagList.length; tpos++)

で、ループの最後の一回で以下の条件式を評価した際にエラーとなってます。
if (!elem.className.Contains("sublist"))

なので、作品のテーブルじゃない所を参照したらループから抜けるように、上の条件式の直前に以下の文を挿入してビルドしてみたところ、とりあえずは正常に動作してるように見えます。
if (null == elem.className)
{
continue;
}

dlタグの要素数がおかしいことに対しての根本的な解決にはなってないですが、ご参考まで。
Posted by at 2014年12月04日 23:36
32bit環境では動きませんでした。
Posted by Ren at 2014年12月06日 08:03
時間経過というか、次の話が投稿されればなろうの記事の方が正常になってエラーが出なくなるのか、このままプログラム側で対処しないと保存できないままなのか、どうなることでしょうか。

商業化によるダイジェストや削除でズレが生じた時は、次の話が投稿されたりしたら直ってたような気がするので、それで解決されればと願うばかりです。
Posted by atp at 2014年12月06日 22:46
<div class="koukoku_text">中のscriptでdlタグが追加されるせいで
for (int tpos = 0; tpos < dlTagList.length; tpos++)
のループが1回分多く回ってしまうみたいですね
Posted by at 2014年12月07日 00:49
かなりの数の小説がダウンロード出来なくなってしまいました。
なんとか対応頂けないものでしょうか。
Posted by at 2014年12月09日 14:21
上のコメントを見て(ひとまず動くらしい)ソースの書き換え自体はできたのだけど、肝心のVS2010expressのインストールするHDD空き容量が無いという罠。
というかVS2010expressはもうDL出来なくなってるのかな?

今だと最新の無料利用可能な開発言語はVS2013 Communityのようだけど、どっちにしても自PCの容量の壁と、いざコンパイルして成功するかどうかの問題が。
Posted by atp at 2014年12月09日 19:22
他の方も書かれているように、広告付きのページは駄目なんでしょうか?
ランキングを見て読みたいなと思っても、DL出来ないとkindlで読めず、泣く泣くスマホで読む次第。
Posted by at 2014年12月12日 18:51
わけもわからず色々見てたけど
2.36まではvs2012?で作られてて
if (! elem.className.Contains("sublist"))
2.37ではvs2013?
if (!elem.className.Contains("sublist"))
とスペースが一個ないみたいだけど特に影響はないのかな?とか思った
2.37を適当に2012で書き換えたら4.5.1云々出たし4.5.2しか入れてない場合はダメなのかな?・・・
Posted by at 2014年12月16日 14:41
>>なので、作品のテーブルじゃない所を参照したらループから抜けるように、上の条件式の直前に以下の文を挿入してビルドしてみたところ、とりあえずは正常に動作してるように見えます。
if (null == elem.className)

適当にビルドしてみたら失敗だった
すでにある
if (null == elem)に.classNameを追加した場合はなんか色々まだエラー出てるけど
一応一括ダウンロードで一回は全部チェックできた
2回やると止まるっぽい
Posted by at 2014年12月17日 18:44
しばらく更新がなさそうなので、公開ソースから暫定対応版を作りました。自分用なので他環境では動かない可能性も有りますが・・・

http://t2rate.seesaa.net/article/410816981.html
Posted by rate at 2014年12月17日 19:42
すいません、最近忙しくて、対応できていませんでした。
気が付いたところだけ直しました。
対応してくださった方、ありがとうございます。
書いてある通り、elem.className.Containsがヌルポで落ちてます。
私のほうはあんまりテストしていないので、上記のリンクのものを使ったほうがよいかも。

ちなみに、Expressはソリューションが使えないので、個別のプロジェクトを頑張ってコンパイルすることになりますので、ご注意ください。
Posted by 管理人 at 2014年12月21日 14:04
除外設定をしてもエラーが発生する方へ、参考までに。


自動保護機能を完全に切るとダウンロードできました。
Posted by おいら at 2015年11月11日 14:28
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック