その中の小説家になろうというWebサイトではかなりの数の小説が公開をしています。
しかし、ブラウザで閲覧するには少しつらいというデメリットがありそれをどうにかして
ローカルに保存なりして専用ビュアーなりで読もうと思いました。
言語:Java
参考にさせていただいた、サイト様一覧
WebLab.ota様
核となるJavaでHTMLのソースを取得するのに参考にさせていただきました。
ほとんど、コピーしてしまったのですが、一部変更させていただきました。
変更点、Getter5クラスのフィールドにある
private String charset = "Shift_JIS";↓
private String charset = "UTF-8";文字コードを変更しないと文字化けを起こしてしまいます。
また少し追加もさせていただきました。
Getter5クラスのフィールドに文章の始まりフラグと、この手の小説にありがちな過剰な改行避けです。
private int textFlag = 0;// 文章フラグ private int enterCount = 0;// 改行をカウントして2回目の改行はパスまた、Getter5クラスのtryの中にある
while ((line = br.readLine()) != null) { htmlArea.append(line + "\n"); }↓
while ((line = br.readLine()) != null) { // 改行文字だけなら\nに変換 //brをbrに変えてくださいhtmlの都合上こう書きました if ("<br />".equalsIgnoreCase(line)) { line = "\n"; enterCount++; } else{ enterCount=0;//改行カウントを0 } //改行が多すぎるのでenterCount導入 if (enterCount < 2) { // 文章が始まった if (line.contains("<div class=\"novel_subtitle\">")) textFlag = 1; // 文末 if (line.contains("<!--novel_color-->")) textFlag = 0; line.trim(); //末尾の<br />を取り除く //brをbrに変えてくださいhtmlの都合上こう書きました line=line.replaceAll("<br />","\n"); // 文章を追加 if (textFlag == 1) htmlArea.append(line); }上記のはbr /を\nに変えて、改行カウントをインクリメントします。
そうしたら、改行のみの文字列が2回以上なければ文字列を追加します。
追加する条件としてtextFlagが1の時に追加します。
textFlagを1にするには"<div class=\"novel_subtitle\">を含んだ文字列を読み込みます
またフラグを下げるには<!--novel_color-->を含んだ文字列を読み込みます
また、なんこかいらないものがあるので
string.replaceAll()で置換して消してください。
その他に参考にさせていただいたサイト様url
http://www29.atwiki.jp/suffix/pages/149.html
http://sasuke.main.jp/javatikan.html
記事の内容が不適切、または消去、訂正を希望されましたら、コメント欄への書き込みをお願いいたします。
0 件のコメント:
コメントを投稿