public async Task <ChapterLoadData> GetPageChapTer(Truyen truyen, int page, bool allowGetNoidung = true) { var pageUrl = string.Format(TRUYEN_URL, truyen.TruyenUrl, page); var htmlData = await WebUtils.DoRequestSimpleGet(pageUrl, null, "", HOME_PAGE); if (htmlData.Status) { var dom = new HtmlDocument(); dom.LoadHtml(htmlData.Data); var chapterDoms = dom.DocumentNode.SelectNodes(DANH_SACH_CHUONG_XPATH); var maxPage = 1; if (chapterDoms != null) { var i = 0; var j = 0; var lchapter = new List <Chapter>(); foreach (var chapDom in chapterDoms) { i++; if (i < 3) { continue; } var chap = new Chapter(); HtmlNode tdom = null; chap.TruyenUrl = truyen.TruyenUrl; chap.PageOfChapter = page; tdom = chapDom.SelectSingleNode(CHUONGNUMBER_XPATH); if (tdom != null) { chap.SoThuTu = tdom.InnerText.Trim(); } tdom = chapDom.SelectSingleNode(TENCHUONG_XPATH); if (tdom != null) { chap.TenChuong = tdom.InnerText.Trim(); } else { continue; } tdom = chapDom.SelectSingleNode(SOURCE_XPATH); if (tdom != null) { chap.Nguon = tdom.InnerText.Trim(); } if (allowGetNoidung) { tdom = chapDom.SelectSingleNode(NOIDUNG_XPATH); if (tdom != null) { List <HtmlNode> listRemove = tdom.ChildNodes.Where(iNode => iNode.Name == "span").ToList(); foreach (var iNode in listRemove) { tdom.RemoveChild(iNode); } chap.NoiDung = tdom.InnerText.Trim(); } else { continue; } } chap.IndexNumberPageOfChapter = j++; lchapter.Add(chap); } var ldom = dom.DocumentNode.SelectNodes(MAX_PAGE_TRUYEN_XPATH); if (ldom != null) { foreach (var idom in ldom) { var cdom = idom.SelectSingleNode("./a"); if (cdom != null) { var href = cdom.GetAttributeValue("href", ""); if (href.IndexOf("=") != -1 && href.IndexOf("&") != -1) { try { href = href.Substring(href.IndexOf("=") + 1, href.IndexOf("&") - href.IndexOf("=") - 1); } catch (Exception) { // ignored } } var n = 0; int.TryParse(href, out n); if (n > maxPage) { maxPage = n; } } } } var result = new ChapterLoadData(); result.ListChapter = lchapter; result.MaxPageIndex = maxPage; result.IndexStartOfChapter = 0; return(result); } } return(null); }