diff --git a/Classes/Chapter7qsClass.cs b/Classes/Chapter7qsClass.cs index 3d44e98b605f932a0eb4caf8e0b921ca6af6b961..bdefe56a4f27b1d25faf6ad8d8b57b664f9fdfd4 100644 --- a/Classes/Chapter7qsClass.cs +++ b/Classes/Chapter7qsClass.cs @@ -7,7 +7,7 @@ using System.Windows.Forms; namespace HtmlToTxtWFA.Classes { /// - /// 章节 20xs + /// 章节 7qs /// public class Chapter7qsClass : ChapterClass { diff --git a/Classes/ChapterIbiqugeClass.cs b/Classes/ChapterIbiqugeClass.cs index 881296826d1c6ce57e77cb71bf4fadfc4b1b389b..997bf11f97bb147d0999e79c6d4b671cbc3bf5df 100644 --- a/Classes/ChapterIbiqugeClass.cs +++ b/Classes/ChapterIbiqugeClass.cs @@ -67,7 +67,6 @@ namespace HtmlToTxtWFA.Classes HtmlNode headNode; HtmlNodeCollection conNodes; - // 第一页 //从url中加载 doc = web.Load(HOST + this.Url); if (doc == null) diff --git a/Classes/ChapterNfxsClass.cs b/Classes/ChapterNfxsClass.cs new file mode 100644 index 0000000000000000000000000000000000000000..407df3c82d208c77a047138b0cf208b6f2cfe931 --- /dev/null +++ b/Classes/ChapterNfxsClass.cs @@ -0,0 +1,97 @@ +using HtmlAgilityPack; +using HtmlToTxtWFA.Utils; +using System.Collections.Generic; +using System.Text; +using System.Windows.Forms; + +namespace HtmlToTxtWFA.Classes +{ + /// + /// 章节 Nfxs + /// + public class ChapterNfxsClass : ChapterClass + { + public ChapterNfxsClass() { } + + public ChapterNfxsClass(HtmlNode aElement) + { + // 第1章 洪战 + string label = aElement.InnerText; + if (label.Contains("第") && label.Contains("章")) + { + this.Label = label; + this.Url = aElement.GetAttributeValue("href", ""); + } + } + + public override List ReadChapterList(string HOST, string serialNumber) + { + HtmlWeb web = new HtmlWeb(); + HtmlAgilityPack.HtmlDocument doc; + HtmlNodeCollection conNodes; + //从url中加载 + Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); + doc = web.LoadFromWebAsync(HOST + "/book/" + serialNumber + "/", Encoding.GetEncoding("GBK")).Result; + if (doc == null) + { + MessageBox.Show("获取章节列表异常"); + return new List(); + } + + conNodes = doc.DocumentNode.SelectNodes("//*[@id=\"list\"]"); + if (conNodes == null || conNodes.Count == 0) + { + MessageBox.Show("获取章节列表异常"); + return new List(); + } + + HtmlNodeCollection aNodes = conNodes[0].SelectNodes(".//a"); + if (aNodes == null || aNodes.Count == 0) + { + MessageBox.Show("获取章节列表异常"); + return new List(); + } + + List chapterList = new List(); + for (int c = 0; c < aNodes.Count; c++) + { + // 第1章 洪战 + HtmlNode aNode = aNodes[c]; + if (aNode == null) + { + continue; + } + + ChapterNfxsClass chapterClass = new ChapterNfxsClass(aNode); + if (!chapterClass.IsNull()) + { + chapterList.Add(chapterClass); + } + } + + return chapterList; + } + + public override void ToTxt(string filePath, string HOST) + { + //从url中加载 + Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); + HtmlAgilityPack.HtmlDocument doc = new HtmlWeb().LoadFromWebAsync(HOST + this.Url, Encoding.GetEncoding("GBK")).Result; + if (doc == null) + { + return; + } + + HtmlNodeCollection conNodes = doc.DocumentNode.SelectNodes("//div[@id=\"content\"]"); + if (conNodes == null || conNodes.Count == 0) + { + return; + } + + TxtUtil.Write(filePath, + " " + this.Label + "\n\n" + + conNodes[0].InnerHtml.Replace(" ", " ").Replace("
", "") + + "\n\n"); + } + } +} diff --git a/MainForm.Designer.cs b/MainForm.Designer.cs index e47aa0055f3a7fa4a8c35f0424847bb3391f25c8..de24ad839649e16882dd41b646f4593251ca2589 100644 --- a/MainForm.Designer.cs +++ b/MainForm.Designer.cs @@ -163,6 +163,7 @@ namespace HtmlToTxtWFA "笔趣阁", "键盘小说网", "乐文小说网", + "农夫小说网", "速读谷"}); this.platformComboBox.Location = new System.Drawing.Point(84, 7); this.platformComboBox.Name = "platformComboBox"; diff --git a/MainForm.cs b/MainForm.cs index 65cb38ca3c7305479de433068200bb9a27e69a3e..60468404412c1675dd715c0b875d1bc4bcf657b1 100644 --- a/MainForm.cs +++ b/MainForm.cs @@ -18,6 +18,7 @@ namespace HtmlToTxtWFA ["笔趣阁"] = "http://www.ibiquge.cc", ["键盘小说网"] = "http://www.janpn.info", ["乐文小说网"] = "https://www.xlewen.com/", + ["农夫小说网"] = "https://www.nfxs.com", ["速读谷"] = "https://www.sudugu.com", }; @@ -104,6 +105,10 @@ namespace HtmlToTxtWFA { chapterList = new ChapterIwurexsClass().ReadChapterList(host, serialNumber); } + else if (platform.Equals("7小说")) + { + chapterList = new Chapter7qsClass().ReadChapterList(host, serialNumber); + } else if (platform.Equals("笔趣阁")) { chapterList = new ChapterIbiqugeClass().ReadChapterList(host, serialNumber); @@ -116,13 +121,13 @@ namespace HtmlToTxtWFA { chapterList = new ChapterXlewenClass().ReadChapterList(host, serialNumber); } - else if (platform.Equals("速读谷")) + else if (platform.Equals("农夫小说网")) { - chapterList = new ChapterSuduguClass().ReadChapterList(host, serialNumber); + chapterList = new ChapterNfxsClass().ReadChapterList(host, serialNumber); } - else if (platform.Equals("7小说")) + else if (platform.Equals("速读谷")) { - chapterList = new Chapter7qsClass().ReadChapterList(host, serialNumber); + chapterList = new ChapterSuduguClass().ReadChapterList(host, serialNumber); } else {