これら 2 つの関数を後で使用できるように FileReaderWriter.java ファイルにカプセル化します。
その後、Zhihu クローラーに戻ります。
ローカルに書き込むときに植字をフォーマットする関数を Zhihu の Zhihu カプセル化クラスに追加する必要があります。
コードは次のとおりです:
public String writeString() { String result = ""; result += "问题:" + question + "\r\n"; result += "描述:" + questionDescription + "\r\n"; result += "链接:" + zhihuUrl + "\r\n"; for (int i = 0; i < answers.size(); i++) { result += "回答" + i + ":" + answers.get(i) + "\r\n"; } result += "\r\n\r\n"; return result; }
OK、これでほぼ完了です。 次に、main メソッドの System.out.println を
コードは次のとおりです:
// 写入本地 for (Zhihu zhihu : myZhihu) { FileReaderWriter.writeIntoFile(zhihu.writeString(), "D:/知乎_编辑推荐.txt", true); }
実行すると、内容がわかります。最初はコンソール上で表示されていました。コンテンツはローカル txt ファイルに書き込まれています:
一見したところ、問題はありませんが、よく見ると問題が見つかります。主に HTML タグが多すぎます。 これらのタグは出力中に処理できます。
まず、io ストリーム内の
を rn に置き換えてから、すべての HTML タグを削除して、よりわかりやすくします。
コードは次のとおりです:
public String writeString() { // 拼接写入本地的字符串 String result = ""; result += "问题:" + question + "\r\n"; result += "描述:" + questionDescription + "\r\n"; result += "链接:" + zhihuUrl + "\r\n"; for (int i = 0; i < answers.size(); i++) { result += "回答" + i + ":" + answers.get(i) + "\r\n\r\n"; } result += "\r\n\r\n\r\n\r\n"; // 将其中的html标签进行筛选 result = result.replaceAll("<br>", "\r\n"); result = result.replaceAll("<.*?>", ""); return result; }
ここの replaceAll 関数は正規表現を使用できるため、最後にすべての タグが削除されます。
上記は、キャプチャされたコンテンツをローカルに保存するためのゼロ基礎で Java Zhihu クローラーを作成する内容です (2) さらに関連するコンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。