private void AddNovelChapter(HtmlNodeCollection chapters, int nId) { NovelBLL nBill = new NovelBLL(); int sort = 0; foreach (var chapter in chapters) { NovelChapter chapterInfo = new NovelChapter(); chapterInfo.NId = nId; chapterInfo.Sort = sort; chapterInfo.ChapterName = chapter.InnerText; var cHref = chapter.Attributes["href"].Value.ToString(); var chapterDoc = new HtmlDocument(); chapterDoc.LoadHtml(HttpHelper.GetHtml(cHref)); chapterInfo.Content = chapterDoc.DocumentNode.SelectSingleNode("//*[@id=\"content\"]")?.InnerText; nBill.AddNovelChapter(chapterInfo); sort++; if (this.txtContent.InvokeRequired) { Action <string, string> actionDelegate = (x, y) => { this.txtContent.Text = string.Format("小说[{0}]--[{1}]采集成功;\r\n", x, y); }; this.txtContent.Invoke(actionDelegate, nId.ToString(), chapterInfo.ChapterName); } else { txtContent.Text += string.Format("小说[{0}]--[{1}]采集成功;\r\n", nId.ToString(), chapterInfo.ChapterName); } } }
private void AddNovel(HtmlNode node) { Novel novelInfo = new Novel(); NovelBLL nBill = new NovelBLL(); string href = node.Attributes["href"].Value.Trim(); var chapters = HttpHelper.GetNovelHtml(href, ref novelInfo); var nId = nBill.AddNovel(novelInfo); if (nId > 0) { Task.Run(() => { AddNovelChapter(chapters, nId); }); } }