public override Queue <BasicComicInfo> GetTopComic(string response) { Queue <BasicComicInfo> queue; queue = new Queue <BasicComicInfo>(); HtmlNode mainNode = GetMainNode(response); if (mainNode == null || response == "") { return(queue); } BasicComicInfo comicInfo; HtmlNodeCollection collect = mainNode.SelectNodes("//div[@class='cTabHotHtmHide']/li"); foreach (HtmlNode nodeTemp in collect) { comicInfo = new BasicComicInfo(); comicInfo.ComicHref = hostName + nodeTemp.SelectSingleNode("./a").Attributes["href"].Value; comicInfo.ComicName = nodeTemp.SelectSingleNode("./a").Attributes["title"].Value; comicInfo.ComicImgUrl = nodeTemp.SelectSingleNode("./a/img").Attributes["src"].Value; queue.Enqueue(comicInfo); } return(queue); }
public override SearchResult GetSearchComic(string response) { SearchResult searchResult; BasicComicInfo basicComicInfo; searchResult = new SearchResult(); HtmlNode mainNode = GetMainNode(response); Queue <BasicComicInfo> queue = new Queue <BasicComicInfo>(); searchResult.SearchQueue = queue; if (response == "") { return(searchResult); } HtmlNodeCollection nodeCollect = mainNode.SelectNodes("//ul[@class='list_con_li update_con autoHeight']/li"); if (nodeCollect != null) { foreach (HtmlNode node in nodeCollect) { basicComicInfo = new BasicComicInfo(); basicComicInfo.ComicHref = node.SelectSingleNode("./a").Attributes["href"].Value; basicComicInfo.ComicName = node.SelectSingleNode("./a").Attributes["title"].Value; basicComicInfo.ComicImgUrl = node.SelectSingleNode("./a/img").Attributes["src"].Value; queue.Enqueue(basicComicInfo); } } string key = ""; nodeCollect = mainNode.SelectNodes("//ul[@class='pagination']/li/a"); if (nodeCollect != null) { Dictionary <string, string> dict = new Dictionary <string, string>(); foreach (HtmlNode temp in nodeCollect) { key = temp.InnerText; if (dict.ContainsKey(key) == false) { dict.Add(key, hostName + temp.Attributes["href"].Value); } } if (dict.ContainsKey("下一页")) { searchResult.NextPageUrl = dict["下一页"]; } } int num = Convert.ToInt32(mainNode.SelectSingleNode("//em[@class='c_6']").InnerText); searchResult.Count = num; return(searchResult); }
public override SearchResult GetSearchComic(string response)//给出搜索漫画结果 { BasicComicInfo comicInfo; SearchResult result = new SearchResult(); Queue <BasicComicInfo> queue = new Queue <BasicComicInfo>(); Regex[] regex = new Regex[3]; regex[0] = new Regex(@"(?<count>\d+)</\w+>\s*本相关漫画"); regex[1] = new Regex(@"img\salt='(?<title>[\w\s,。!]*)?(<font\s*color=red>)?\s*(?<title1>[\w\s,。!]*)?(</font>)?(?<title2>\w+)?'\s*src='(?<url>[\w./:-]*)'></div>\s*<div\s*class='cListTitle'>\s*<a\s*target='_blank'\s*href='(?<href>[\w-/]*)'"); regex[2] = new Regex(@"");//下一页 foreach (Match macth in regex[1].Matches(response)) { comicInfo = new BasicComicInfo(); comicInfo.ComicHref = hostName + macth.Groups["href"].Value; comicInfo.ComicName = macth.Groups["title"].Value + macth.Groups["title1"].Value + macth.Groups["title2"].Value; comicInfo.ComicImgUrl = macth.Groups["url"].Value; queue.Enqueue(comicInfo); } var count = regex[0].Match(response).Groups["count"].Value; if (count != "") { result.Count = Convert.ToInt32(count); } else { result.Count = 0; } result.SearchQueue = queue; return(result); }
public override Queue <BasicComicInfo> GetTopComic(string response) { string title = ""; string href = ""; string url = ""; BasicComicInfo basicCominfo; Queue <BasicComicInfo> queue = new Queue <BasicComicInfo>(); HtmlDocument document = new HtmlDocument(); document.LoadHtml(response); HtmlNodeCollection collect = document.DocumentNode.SelectNodes("//div[@class='cHpComic']"); foreach (var i in collect) { basicCominfo = new BasicComicInfo(); title = i.SelectSingleNode("./a[@target='_blank']").Attributes["title"].Value; href = i.SelectSingleNode("./a[@target='_blank']").Attributes["href"].Value; url = i.SelectSingleNode("./a/img").Attributes["src"].Value; basicCominfo.ComicName = title; basicCominfo.ComicImgUrl = url; basicCominfo.ComicHref = hostName + href; queue.Enqueue(basicCominfo); } return(queue); }
public override Queue <BasicComicInfo> GetTopComic(string response) { Queue <BasicComicInfo> queue = new Queue <BasicComicInfo>(); HtmlNode mainNode = GetMainNode(response); HtmlNode node = mainNode.SelectSingleNode("//ul[@class='list_con_li clearfix']"); HtmlNodeCollection collect = node.SelectNodes("./li"); if (collect == null) { return(queue); } BasicComicInfo comicInfo; foreach (HtmlNode nodeTemp in collect) { comicInfo = new BasicComicInfo(); comicInfo.ComicHref = nodeTemp.SelectSingleNode("./a").Attributes["href"].Value; comicInfo.ComicName = nodeTemp.SelectSingleNode("./a/img").Attributes["alt"].Value; comicInfo.ComicImgUrl = nodeTemp.SelectSingleNode("./a/img").Attributes["src"].Value; queue.Enqueue(comicInfo); } return(queue); }
public override Queue <BasicComicInfo> GetTopComic(string response) { HtmlDocument doc; BasicComicInfo comicInfo; Queue <BasicComicInfo> queue; doc = new HtmlDocument(); queue = new Queue <BasicComicInfo>(); doc.LoadHtml(response); HtmlNodeCollection collection = doc.DocumentNode.SelectNodes("//div[@class='itemBox']/div[@class='itemImg']"); if (collection == null) { return(queue); } foreach (HtmlNode node in collection) { comicInfo = new BasicComicInfo(); comicInfo.ComicHref = node.SelectSingleNode("./a").Attributes["href"].Value; comicInfo.ComicName = node.SelectSingleNode("./a/mip-img").Attributes["alt"].Value; comicInfo.ComicImgUrl = node.SelectSingleNode("./a/mip-img").Attributes["src"].Value; queue.Enqueue(comicInfo); } return(queue); }
public override CategoryCollect FindComicByCategory(string cateGoryStr)//实现漫画目录图片枚举 { Regex regex; BasicComicInfo basic; CategoryCollect category = new CategoryCollect(); var comicQueue = new Queue <BasicComicInfo>(); HtmlDocument document = new HtmlDocument(); document.LoadHtml(cateGoryStr); HtmlNode node = document.DocumentNode.SelectSingleNode("//div[@class='cComicList']"); HtmlNodeCollection collect = node.SelectNodes("./li/a"); foreach (var i in collect) { basic = new BasicComicInfo(); basic.ComicHref = hostAttach + i.Attributes["href"].Value; basic.ComicName = i.Attributes["title"].Value; basic.ComicImgUrl = i.SelectSingleNode("./img").Attributes["src"].Value; comicQueue.Enqueue(basic); } regex = new Regex(@"href='(?<href>[\w:/.]*)'>\s*下一页");//还可以修改,暂时不动 category.NextPageUrl = hostAttach + regex.Match(cateGoryStr).Groups["href"].Value; category.ComicQueue = comicQueue; category.PagesCollection = new Dictionary <string, string>(); return(category); }
public override SearchResult GetSearchComic(string response) { BasicComicInfo comicInfo; SearchResult result = new SearchResult(); Queue <BasicComicInfo> queue = new Queue <BasicComicInfo>(); HtmlDocument document = new HtmlDocument(); document.LoadHtml(response); HtmlNode node = document.DocumentNode.SelectSingleNode("//div[@class='cComicList']"); HtmlNodeCollection collect = node.SelectNodes("./li/a"); foreach (var i in collect) { comicInfo = new BasicComicInfo(); comicInfo.ComicHref = hostAttach + i.Attributes["href"].Value; comicInfo.ComicName = i.Attributes["title"].Value; comicInfo.ComicImgUrl = i.SelectSingleNode("./img").Attributes["src"].Value; queue.Enqueue(comicInfo); } result.Count = queue.Count; result.SearchQueue = queue; result.NextPageUrl = ""; return(result); }
public override Queue <BasicComicInfo> GetTopComic(string response) { string temp; HtmlNode node; HtmlDocument doc; doc = new HtmlDocument(); doc.LoadHtml(response); Queue <BasicComicInfo> queue; BasicComicInfo basicInfo; queue = new Queue <BasicComicInfo>(); HtmlNodeCollection nodeCollect = doc.DocumentNode.SelectNodes("//div[@class='mh-item']"); foreach (HtmlNode n in nodeCollect) { node = n.SelectSingleNode("./p[@class='mh-cover ']"); if (node == null) { continue; } temp = node.Attributes["style"].Value; basicInfo = new BasicComicInfo(); basicInfo.ComicImgUrl = temp.Substring(temp.IndexOf("(") + 1, temp.Length - temp.IndexOf("(") - 2); node = n.SelectSingleNode("./div[@class='mh-item-detali']"); basicInfo.ComicName = node.SelectSingleNode("./h2/a").Attributes["title"].Value; basicInfo.ComicHref = hostAttach + node.SelectSingleNode("./h2/a").Attributes["href"].Value; queue.Enqueue(basicInfo); } return(queue); }
public override CategoryCollect FindComicByCategory(string cateGoryStr)//通过漫画分类获取漫画 { var basicInfo = new BasicComicInfo(); var comicCollect = new CategoryCollect(); var bookList = AnalyseTool.GetTag(cateGoryStr, @"<div class=""book-list"">", "</div>"); comicCollect.Count = 0; Regex regex = new Regex(@"href=""(?<href>[/\w]*)""\stitle=""(?<title>[\w\&!!,s]*)""><img\s*(data-src|src)=""(?<url>[:\w./]*)"""); var comicQueue = new Queue <BasicComicInfo>(); foreach (Match i in regex.Matches(bookList)) { basicInfo = new BasicComicInfo(); basicInfo.ComicHref = host + i.Groups["href"].Value; basicInfo.ComicName = i.Groups["title"].Value; basicInfo.ComicImgUrl = i.Groups["url"].Value; comicQueue.Enqueue(basicInfo); } var pageInfo = AnalyseTool.GetTag(cateGoryStr, @"<div class=""pager-cont"">", "</div>"); regex = new Regex(@"href=""(?<href>[/\w._]*)""\s*\w+=""[\w-:;]*"">下一页"); comicCollect.NextPageUrl = homePage + regex.Match(cateGoryStr).Groups["href"].Value; comicCollect.Count = comicQueue.Count; comicCollect.ComicQueue = comicQueue; return(comicCollect); }
//需要修改路径和标签 public override CategoryCollect FindComicByCategory(string cateGoryStr) { HtmlDocument doc; HtmlNode node; BasicComicInfo basicInfo; HtmlNodeCollection collect; CategoryCollect cateCollect; Queue <BasicComicInfo> comicQueue; basicInfo = null; doc = new HtmlDocument(); cateCollect = new CategoryCollect(); comicQueue = new Queue <BasicComicInfo>(); doc.LoadHtml(cateGoryStr); collect = doc.DocumentNode.SelectNodes("//ul[@class='liemh htmls indliemh']/li"); foreach (HtmlNode temp in collect) { basicInfo = new BasicComicInfo(); node = temp.SelectSingleNode("./a"); basicInfo.ComicName = node.Attributes["title"].Value; basicInfo.ComicHref = node.Attributes["href"].Value; basicInfo.ComicImgUrl = temp.SelectSingleNode("./a/img").Attributes["src"].Value; comicQueue.Enqueue(basicInfo); } node = doc.DocumentNode.SelectSingleNode("//div[@class='pagination-wrapper']"); cateCollect.NextPageUrl = hostName + node.SelectNodes("./a[@class='next']")[0].Attributes["href"].Value; cateCollect.Count = comicQueue.Count; cateCollect.ComicQueue = comicQueue; return(cateCollect); }
public override Queue <BasicComicInfo> GetTopComic(string response) { HtmlDocument doc; HtmlNodeCollection tempCollect; BasicComicInfo basic = null; Queue <BasicComicInfo> queue = null; Dictionary <string, string> dict; doc = new HtmlDocument(); dict = new Dictionary <string, string>(); queue = new Queue <BasicComicInfo>(); doc.LoadHtml(response); HtmlNodeCollection collect = doc.DocumentNode.SelectNodes("//ul[@class='liemh indliemh']"); foreach (HtmlNode node in collect) { tempCollect = node.SelectNodes("./li/a"); foreach (HtmlNode node1 in tempCollect) { if (dict.ContainsKey(node1.Attributes["title"].Value) == false) { basic = new BasicComicInfo(); basic.ComicHref = node1.Attributes["href"].Value; basic.ComicName = node1.Attributes["title"].Value; basic.ComicImgUrl = node1.SelectSingleNode("./img").Attributes["src"].Value; queue.Enqueue(basic); } } } return(queue); }
public override Queue <BasicComicInfo> GetTopComic(string response) { Queue <BasicComicInfo> comicQueue; BasicComicInfo basic; comicQueue = new Queue <BasicComicInfo>(); response = AnalyseTool.GetTag(response, @"<div class=""cmt-cont cf""", "</div>"); var pattern = @"href=""(?<href>[/\w]*)""\s*title=""(?<title>[\w\s;!♀♂&【】&]*)""><img\s*(src|data-src)=""(?<url>[:\w/.]*)"""; Regex regex = new Regex(pattern); MatchCollection matchCollect = regex.Matches(response); var count = 0; foreach (Match i in matchCollect) { basic = new BasicComicInfo(); basic.ComicName = i.Groups["title"].Value; basic.ComicImgUrl = i.Groups["url"].Value; basic.ComicHref = host + i.Groups["href"].Value; comicQueue.Enqueue(basic); count++; } return(comicQueue); }
public override SearchResult GetSearchComic(string response) { BasicComicInfo comicInfo; SearchResult result = new SearchResult(); Queue <BasicComicInfo> queue = new Queue <BasicComicInfo>(); Regex[] regex = new Regex[2]; regex[0] = new Regex(@"找到\s*(<\w+>)?(?<count>\d+)"); regex[1] = new Regex(@"<a\sclass=""bcover""\s*href=""(?<href>[\w/_-]*)""\s*title=""(?<title>[\:\w\s\[\]\!\。\、\-\—\~\(\)\!]*)"">\s*<img\s*src=""(?<url>[\w\s/:.]*)"""); var count = regex[0].Match(response).Groups["count"].Value; result.Count = Convert.ToInt32(count); foreach (Match match in regex[1].Matches(response)) { comicInfo = new BasicComicInfo(); comicInfo.ComicHref = homePage + match.Groups["href"].Value; comicInfo.ComicImgUrl = match.Groups["url"].Value; comicInfo.ComicName = match.Groups["title"].Value; queue.Enqueue(comicInfo); } result.SearchQueue = queue; return(result); }
public override SearchResult GetSearchComic(string response) { BasicComicInfo comicInfo; SearchResult result = new SearchResult(); HtmlNode mainNode = GetMainNode(response); HtmlNodeCollection nodeCollect = mainNode.SelectNodes("//div[@class='mh-item-detali']/h2/a"); result.SearchQueue = new Queue <BasicComicInfo>(); result.Count = 0; if (nodeCollect == null) { return(result); } foreach (HtmlNode node in nodeCollect) { comicInfo = new BasicComicInfo(); comicInfo.ComicHref = host + node.Attributes["href"].Value; comicInfo.ComicImgUrl = mainNode.SelectSingleNode("//img[@class='mh-cover']").Attributes["src"].Value; comicInfo.ComicName = node.Attributes["title"].Value; result.SearchQueue.Enqueue(comicInfo); } result.Count = result.SearchQueue.Count; return(result); }
public override CategoryCollect FindComicByCategory(string cateGoryStr) { string tempStr = ""; HtmlDocument doc; HtmlNode node; BasicComicInfo basic; Dictionary <string, string> dict; Queue <BasicComicInfo> queue; CategoryCollect collectInfo; queue = new Queue <BasicComicInfo>(); collectInfo = new CategoryCollect(); doc = new HtmlDocument(); doc.LoadHtml(cateGoryStr); HtmlNodeCollection collect = doc.DocumentNode.SelectNodes("//div[@class='box-body']/ul[@class='mh-list col7']/li/div[@class='mh-item']"); foreach (HtmlNode temp in collect) { basic = new BasicComicInfo(); node = temp.SelectSingleNode("./div[@class='mh-item-detali']/h2[@class='title']/a"); basic.ComicName = node.Attributes["title"].Value; basic.ComicHref = hostAttach + node.Attributes["href"].Value; node = temp.SelectSingleNode("./p[@class='mh-cover']"); tempStr = node.Attributes["style"].Value; basic.ComicImgUrl = tempStr.Substring(tempStr.IndexOf("(") + 1, tempStr.IndexOf(")") - tempStr.IndexOf("(") - 1); queue.Enqueue(basic); } node = doc.DocumentNode.SelectSingleNode("//div[@class='page-pagination pull-right mt20']"); collect = node.SelectNodes("./ul/li/a"); dict = new Dictionary <string, string>(); var count = 0; var index = 0; foreach (HtmlNode temp in collect) { count++; tempStr = temp.Attributes["data-index"].Value; if (dict.ContainsKey(tempStr) == false) { dict.Add(tempStr, hostAttach + temp.Attributes["href"].Value); } if (temp.Attributes["class"] != null && temp.Attributes["class"].Value == "active") { index = count; } } collectInfo.NextPageUrl = dict[(index + 1).ToString()]; collectInfo.ComicQueue = queue; collectInfo.Count = queue.Count; collectInfo.PagesCollection = dict; return(collectInfo); }
public virtual Queue <BasicComicInfo> GetTopComic(string response)//获取热门漫画 { BasicComicInfo comicInfo; comicInfo = new BasicComicInfo(); Queue <BasicComicInfo> queue = new Queue <BasicComicInfo>(); return(queue); }
public override SearchResult GetSearchComic(string response) { BasicComicInfo basic; SearchResult result = new SearchResult(); HtmlNodeCollection nodeCollect; HtmlDocument doc; doc = new HtmlDocument(); doc.LoadHtml(response); nodeCollect = doc.DocumentNode.SelectNodes("//div[@class='mh-item']"); result.Count = 0; string strTemp; HtmlNode subNode; Queue <BasicComicInfo> queue; queue = new Queue <BasicComicInfo>(); if (nodeCollect == null) { return(result); } subNode = doc.DocumentNode.SelectSingleNode("//header[@class='box-header']"); strTemp = subNode.SelectSingleNode("./h1/span").InnerText; strTemp = Regex.Match(strTemp, @"\d+").Value; result.Count = Convert.ToInt32(strTemp); foreach (HtmlNode temp in nodeCollect) { basic = new BasicComicInfo(); strTemp = temp.SelectSingleNode("./p").Attributes["style"].Value; basic.ComicImgUrl = strTemp.Substring(strTemp.IndexOf("(") + 1, strTemp.Length - strTemp.IndexOf("(") - 2); subNode = temp.SelectSingleNode("./div/h2/a"); basic.ComicName = subNode.Attributes["title"].Value; basic.ComicHref = hostAttach + subNode.Attributes["href"].Value; queue.Enqueue(basic); } nodeCollect = doc.DocumentNode.SelectNodes("//div[@class='page-pagination pull-right mt20']/ul/li/a"); int index = 0; foreach (HtmlNode temp in nodeCollect) { if (temp.Attributes["class"] != null && temp.Attributes["class"].Value == "active") { result.NextPageUrl = hostAttach + nodeCollect[++index].Attributes["href"].Value; break; } index++; } result.SearchQueue = queue; return(result); }
public override CategoryCollect FindComicByCategory(string cateGoryStr) { HtmlDocument doc; HtmlNode node; BasicComicInfo basicInfo; HtmlNodeCollection collect; CategoryCollect cateCollect; Queue <BasicComicInfo> comicQueue; basicInfo = null; doc = new HtmlDocument(); cateCollect = new CategoryCollect(); comicQueue = new Queue <BasicComicInfo>(); doc.LoadHtml(cateGoryStr); collect = doc.DocumentNode.SelectNodes("//div[@class='recommendedpic allfloatleft']"); if (collect == null) { collect = doc.DocumentNode.SelectNodes("//div[@class='recommendedpicl center']"); } foreach (HtmlNode temp in collect) { basicInfo = new BasicComicInfo(); node = temp.SelectSingleNode("./a"); basicInfo.ComicName = node.Attributes["title"].Value; basicInfo.ComicHref = node.Attributes["href"].Value; basicInfo.ComicImgUrl = hostName + temp.SelectSingleNode("./a/img").Attributes["src"].Value; comicQueue.Enqueue(basicInfo); } string href = ""; HtmlNode hrefNode = doc.DocumentNode.SelectSingleNode("//div[@class='gray reminderguild']"); Regex regex = new Regex(@"href=""(?<href>[\w_\.]*)""\s*title=""下一页"""); Regex regexhref = new Regex(@"href=""(?<href>[\w\-\./]*)""\s*target=""_self"">全部"); if (hrefNode != null) { href = regexhref.Match(hrefNode.OuterHtml).Groups["href"].Value; href = href.Substring(0, href.LastIndexOf("/")) + "/"; cateCollect.NextPageUrl = hostName + href + regex.Match(cateGoryStr).Groups["href"].Value; } else { cateCollect.NextPageUrl = "http://www.dmzx.com/zuixin/"; } cateCollect.Count = comicQueue.Count; cateCollect.ComicQueue = comicQueue; return(cateCollect); }
public Queue <BasicComicInfo> AnalyseURL(string response, string express) { Regex regex = new Regex(express); BasicComicInfo basic = new BasicComicInfo(); Queue <BasicComicInfo> queue = new Queue <BasicComicInfo>(); MatchCollection match = regex.Matches(response); foreach (Match i in match) { basic = new BasicComicInfo(); basic.ComicImgUrl = i.Groups["url"].Value; basic.ComicName = i.Groups["data1"].Value + i.Groups["data2"].Value + i.Groups["data3"].Value; basic.ComicHref = hostName + i.Groups["href"].Value; queue.Enqueue(basic); } return(queue); }
public override SearchResult GetSearchComic(string response) { SearchResult result = new SearchResult(); HtmlDocument doc = new HtmlDocument(); Queue <BasicComicInfo> queue; queue = new Queue <BasicComicInfo>(); doc.LoadHtml(response); BasicComicInfo info; HtmlNodeCollection collect = doc.DocumentNode.SelectNodes("//ul[@class='liemh htmls indliemh']/li"); if (collect == null) { return(result); } foreach (HtmlNode node in collect) { info = new BasicComicInfo(); info.ComicHref = node.SelectSingleNode("./a").Attributes["href"].Value; info.ComicName = node.SelectSingleNode("./a").Attributes["title"].Value; info.ComicImgUrl = node.SelectSingleNode("./a/img").Attributes["src"].Value; queue.Enqueue(info); } HtmlNode nodeTemp = doc.DocumentNode.SelectSingleNode("//div[@class='position']"); Regex regex = new Regex(@"(?<data>\d+)"); result.Count = Convert.ToInt32(regex.Match(nodeTemp.InnerText).Groups["data"].Value); collect = doc.DocumentNode.SelectNodes("//a[@class='next']"); if (collect != null) { result.NextPageUrl = hostName + collect[0].Attributes["href"].Value; } else { result.NextPageUrl = ""; } result.SearchQueue = queue; return(result); }
public override CategoryCollect FindComicByCategory(string response) { HtmlDocument doc; CategoryCollect cateInfo; Queue <BasicComicInfo> queue; Dictionary <string, string> pageDict; doc = new HtmlDocument(); cateInfo = new CategoryCollect(); queue = new Queue <BasicComicInfo>(); doc.LoadHtml(response); BasicComicInfo basicInfo = null; HtmlNodeCollection collection = doc.DocumentNode.SelectNodes("//ul[@class='grid-row clearfix']/li | //ul[@class='grid-row clearfix first']/li"); foreach (HtmlNode node in collection) { basicInfo = new BasicComicInfo(); basicInfo.ComicName = node.SelectSingleNode("./p/a").InnerText; basicInfo.ComicHref = node.SelectSingleNode("./p/a").Attributes["href"].Value; basicInfo.ComicImgUrl = node.SelectSingleNode("./a/img").Attributes["src"].Value; queue.Enqueue(basicInfo); } pageDict = new Dictionary <string, string>(); collection = doc.DocumentNode.SelectNodes("//ul[@class='pagination']/li/a"); foreach (HtmlNode node in collection) { if (pageDict.ContainsKey(node.InnerText) == false) { pageDict.Add(node.InnerText, hostName + node.Attributes["href"].Value); } } var temp = doc.DocumentNode.SelectSingleNode("//div[@class='head']/span").InnerText; var currentPage = Convert.ToInt32(temp.Substring(0, temp.IndexOf("/"))); cateInfo.ComicQueue = queue; cateInfo.Count = queue.Count; cateInfo.NextPageUrl = pageDict[(currentPage + 1).ToString()]; cateInfo.PagesCollection = pageDict; return(cateInfo); }
public override Queue<BasicComicInfo> GetTopComic(string response)//实现热门 { BasicComicInfo basic = null; Queue<BasicComicInfo> queue = new Queue<BasicComicInfo>(); HtmlDocument document = new HtmlDocument(); document.LoadHtml(response); HtmlNode node = document.DocumentNode.SelectSingleNode("//div[@class='cComicHot']"); HtmlNodeCollection collect = node.SelectNodes("./div/li/a"); foreach (var i in collect) { basic = new BasicComicInfo(); basic.ComicHref = hostAttach + i.Attributes["href"].Value; basic.ComicName = i.Attributes["title"].Value; basic.ComicImgUrl = i.SelectSingleNode("./img").Attributes["src"].Value; queue.Enqueue(basic); } return queue; }
public override Queue <BasicComicInfo> GetTopComic(string response)//实现热门 { BasicComicInfo basicComicInfo; HtmlNode mainNode = GetMainNode(response); Queue <BasicComicInfo> queue = new Queue <BasicComicInfo>(); HtmlNodeCollection nodes = mainNode.SelectNodes("//div[@class='index-manga-item']"); if (nodes != null) { foreach (HtmlNode temp in nodes) { basicComicInfo = new BasicComicInfo(); basicComicInfo.ComicHref = host + temp.SelectSingleNode("./a").Attributes["href"].Value; basicComicInfo.ComicName = temp.SelectSingleNode("./p/a").InnerText; basicComicInfo.ComicImgUrl = temp.SelectSingleNode("./a/img").Attributes["src"].Value; queue.Enqueue(basicComicInfo); } } return(queue); }
public override Queue <BasicComicInfo> GetTopComic(string response) { HtmlDocument doc; Queue <BasicComicInfo> queue; BasicComicInfo basicInfo; doc = new HtmlDocument(); queue = new Queue <BasicComicInfo>(); doc.LoadHtml(response); HtmlNodeCollection collect = doc.DocumentNode.SelectNodes("//a[@class='cover']"); foreach (HtmlNode tempNode in collect) { basicInfo = new BasicComicInfo(); basicInfo.ComicHref = tempNode.Attributes["href"].Value; basicInfo.ComicName = tempNode.Attributes["title"].Value; basicInfo.ComicImgUrl = tempNode.SelectSingleNode("./img").Attributes["src"].Value; queue.Enqueue(basicInfo); } return(queue); }
public override Queue <BasicComicInfo> GetTopComic(string response) { HtmlNode node; HtmlDocument doc = new HtmlDocument(); doc.LoadHtml(response); BasicComicInfo basic = null; Queue <BasicComicInfo> queue; queue = new Queue <BasicComicInfo>(); HtmlNodeCollection collect = doc.DocumentNode.SelectNodes("//div[@class='picbox']"); if (collect == null) { return(queue); } foreach (HtmlNode temp in collect) { basic = new BasicComicInfo(); node = temp.SelectSingleNode("./a"); basic.ComicName = node.Attributes["title"].Value; basic.ComicHref = node.Attributes["href"].Value; node = node.SelectSingleNode("./img"); if (node.Attributes["data-original"] == null) { continue; } basic.ComicImgUrl = hostName + node.Attributes["data-original"].Value; queue.Enqueue(basic); } return(queue); }
public override CategoryCollect FindComicByCategory(string cateGoryStr) { CategoryCollect cateCollect = new CategoryCollect(); var dat = AnalyseTool.GetTag(cateGoryStr, @"<div class=""cComicList""", @"<div class=""cComicPageChange2"); Regex regex = new Regex(@"href=['""](?<href>[/\w-]*)['""]\s*class=['""][\w_]*['""]\stitle=['""](?<title>[\w-!!\s,。]*)['""]><img\salt=['""][\w-!,。\s,]*['""]\s*src=['""](?<url>[\w:/.-]*)"); var basicInfo = new BasicComicInfo(); var comicQueue = new Queue <BasicComicInfo>(); foreach (Match i in regex.Matches(dat)) { basicInfo = new BasicComicInfo(); basicInfo.ComicHref = hostName + i.Groups["href"].Value; basicInfo.ComicName = i.Groups["title"].Value; basicInfo.ComicImgUrl = i.Groups["url"].Value; comicQueue.Enqueue(basicInfo); } dat = AnalyseTool.GetTag(cateGoryStr, "<span class='cPageChangeLink'>", "</span>"); regex = new Regex(@"<a\s*href='(?<url>[\w-/]*)'>下一页"); cateCollect.NextPageUrl = hostName + regex.Match(dat).Groups["url"].Value; cateCollect.ComicQueue = comicQueue; cateCollect.PagesCollection = new Dictionary <string, string>(); return(cateCollect); }
public override CategoryCollect FindComicByCategory(string cateGoryStr) { HtmlDocument doc; HtmlNode node; HtmlNodeCollection nodeCollect; CategoryCollect collect; BasicComicInfo basicInfo = null; Queue <BasicComicInfo> queue; queue = new Queue <BasicComicInfo>(); collect = new CategoryCollect(); doc = new HtmlDocument(); doc.LoadHtml(cateGoryStr); nodeCollect = doc.DocumentNode.SelectNodes("//div[@class='nag cf']/div/div/a"); foreach (HtmlNode temp in nodeCollect) { node = temp.SelectSingleNode("./span/img"); basicInfo = new BasicComicInfo(); basicInfo.ComicHref = temp.Attributes["href"].Value; basicInfo.ComicName = temp.Attributes["title"].Value; basicInfo.ComicImgUrl = node.Attributes["src"].Value; queue.Enqueue(basicInfo); } collect.ComicQueue = queue; collect.Count = queue.Count; node = doc.DocumentNode.SelectSingleNode("//a[@class='nextpostslink']"); if (node != null) { collect.NextPageUrl = node.Attributes["href"].Value; } return(collect); }
public override CategoryCollect FindComicByCategory(string cateGoryStr) { CategoryCollect cateCollect = new CategoryCollect(); Queue <BasicComicInfo> queue = new Queue <BasicComicInfo>(); HtmlNode mainNode = GetMainNode(cateGoryStr); cateCollect.ComicQueue = queue; HtmlNode node = mainNode.SelectSingleNode("//ul[@class='list_con_li clearfix']"); if (node == null) { return(cateCollect); } HtmlNodeCollection collect = node.SelectNodes("./li"); if (collect == null) { return(cateCollect); } BasicComicInfo comicInfo; foreach (HtmlNode nodeTemp in collect) { comicInfo = new BasicComicInfo(); comicInfo.ComicHref = nodeTemp.SelectSingleNode("./a").Attributes["href"].Value; comicInfo.ComicName = nodeTemp.SelectSingleNode("./a/img").Attributes["alt"].Value; comicInfo.ComicImgUrl = nodeTemp.SelectSingleNode("./a/img").Attributes["src"].Value; queue.Enqueue(comicInfo); } int count = 0; string key = ""; node = mainNode.SelectSingleNode("//span[@class='comi_num']/em"); count = Convert.ToInt32(node.InnerText); collect = mainNode.SelectNodes("//ul[@class='pagination']/li/a"); cateCollect.PagesCollection = new Dictionary <string, string>(); if (collect != null) { foreach (HtmlNode temp in collect) { key = temp.InnerText; if (cateCollect.PagesCollection.ContainsKey(key) == false) { cateCollect.PagesCollection.Add(key, hostName + temp.Attributes["href"].Value); } } if (cateCollect.PagesCollection.ContainsKey("下一页")) { cateCollect.NextPageUrl = cateCollect.PagesCollection["下一页"]; } } return(cateCollect); }
public override CategoryCollect FindComicByCategory(string cateGoryStr) { CategoryCollect collect; BasicComicInfo basicComicInfo; collect = new CategoryCollect(); HtmlNode mainNode = GetMainNode(cateGoryStr); Queue <BasicComicInfo> queue = new Queue <BasicComicInfo>(); HtmlNodeCollection nodes = mainNode.SelectNodes("//div[@class='mh-item']"); if (nodes != null) { foreach (HtmlNode temp in nodes) { basicComicInfo = new BasicComicInfo(); basicComicInfo.ComicHref = host + temp.SelectSingleNode("./a").Attributes["href"].Value; basicComicInfo.ComicName = temp.SelectSingleNode("./div/h2/a").InnerText; basicComicInfo.ComicImgUrl = temp.SelectSingleNode("./a/img").Attributes["src"].Value; queue.Enqueue(basicComicInfo); } } int curIndex = 0; int count = 1; nodes = mainNode.SelectNodes("//div[@class='page-pagination']/ul/li"); collect.PagesCollection = new Dictionary <string, string>(); if (nodes != null) { foreach (HtmlNode temp in nodes)//这部分有问题,找不到page-pagination段 { if (!collect.PagesCollection.ContainsKey(temp.InnerText)) { HtmlNode node = temp.SelectSingleNode("./a"); if (node.Attributes["class"] != null) { curIndex = count; } collect.PagesCollection.Add(node.InnerText, host + node.Attributes["href"].Value); count++; } } } collect.ComicTotalCount = queue.Count; collect.ComicQueue = queue; if (curIndex - 1 > 0 && collect.Count > 0) { collect.LastPageUrl = collect.PagesCollection[(curIndex - 1).ToString()]; } else { collect.LastPageUrl = collect.PagesCollection[(curIndex).ToString()]; } if (curIndex + 1 < collect.PagesCollection.Count && collect.Count > 0) { collect.NextPageUrl = collect.PagesCollection[(curIndex + 1).ToString()]; } else { collect.NextPageUrl = collect.PagesCollection[(collect.PagesCollection.Count - 1).ToString()]; } return(collect); }