/// <summary> /// 解析目录 /// </summary> /// <param name="html"></param> /// <returns></returns> public List <Banner> HandleNomicBanner(string html) { List <Banner> list = new List <Banner>(); HtmlDocument htmlDocument = new HtmlDocument(); htmlDocument.LoadHtml(html); var htmlNodes = htmlDocument.DocumentNode.SelectNodes("//div[@class='list']//a"); var db = _redisCore._redisDB; Banner banner_new = new Banner { Title = "最新上传" }; list.Add(banner_new); foreach (var htmlNode in htmlNodes) { Banner banner = new Banner(); var titleNode = htmlNode.SelectSingleNode($"{htmlNode.XPath}//div[@class='fl']"); var url = $"http://www.weijiaoshou.cn{htmlNode.GetAttributeValue("href", "")}"; banner.Title = titleNode.InnerText.Trim(); //nomic.Title = urlNode.InnerText; var pageKey = $"{banner.Title}_1"; db.StringSet(pageKey, url, TimeSpan.MaxValue); list.Add(banner); } var newHtmlNodes = htmlDocument.DocumentNode.SelectNodes("//a[@class='men clearfix']"); List <Nomic> nomics = new List <Nomic>(); foreach (var htmlNode in newHtmlNodes) { Nomic nomic = new Nomic(); var imgNode = htmlNode.SelectSingleNode($"{htmlNode.XPath}//div[@class='fl men-l']//img"); var imgUrl = $"http://www.weijiaoshou.cn{imgNode.GetAttributeValue("src", "")}"; var titleNode = htmlNode.SelectSingleNode($"{htmlNode.XPath}//div[@class='fl men-r']//div[@class='men-r-t']"); var desNode = htmlNode.SelectSingleNode($"{htmlNode.XPath}//div[@class='fl men-r']//div[@class='men-r-b']"); nomic.Url = $"http://www.weijiaoshou.cn{htmlNode.GetAttributeValue("href", "")}"; nomic.Title = titleNode.InnerText.Trim(); nomic.ImgUrl = imgUrl; nomic.Description = desNode.InnerText; nomics.Add(nomic); } var key = $"最新上传_list_1"; db.SetCache(key, nomics, TimeSpan.MaxValue); return(list); }
/// <summary> /// 解析目录 /// </summary> /// <param name="html"></param> /// <returns></returns> public List <Nomic> HandleNomic(string html) { List <Nomic> list = new List <Nomic>(); HtmlDocument htmlDocument = new HtmlDocument(); htmlDocument.LoadHtml(html); var htmlNodes = htmlDocument.DocumentNode.SelectNodes("//article"); foreach (var htmlNode in htmlNodes) { Nomic nomic = new Nomic(); var urlNode = htmlNode.SelectSingleNode($"{htmlNode.XPath}//h2//a"); var urls = urlNode.GetAttributeValue("href", "").Split('/'); nomic.Url = urls[urls.Length - 1].Split('.')[0]; nomic.Title = urlNode.InnerText; list.Add(nomic); } return(list); }
/// <summary> /// 解析目录 /// </summary> /// <param name="html"></param> /// <returns></returns> public List <Nomic> HandleNomic(string html, string title) { var redis = _redisCore._redisDB; List <Nomic> list = new List <Nomic>(); HtmlDocument htmlDocument = new HtmlDocument(); htmlDocument.LoadHtml(html); var htmlNodes = htmlDocument.DocumentNode.SelectNodes("//div[@class='recommend']//a"); foreach (var htmlNode in htmlNodes) { Nomic nomic = new Nomic(); var imgNode = htmlNode.SelectSingleNode($"{htmlNode.XPath}//div[@class='fl men-l']//img"); var imgUrl = $"http://www.weijiaoshou.cn{imgNode.GetAttributeValue("src", "")}"; var titleNode = htmlNode.SelectSingleNode($"{htmlNode.XPath}//div[@class='fl men-r']//div[@class='men-r-t']"); var desNode = htmlNode.SelectSingleNode($"{htmlNode.XPath}//div[@class='fl men-r']//div[@class='men-r-b']"); nomic.Url = $"http://www.weijiaoshou.cn{htmlNode.GetAttributeValue("href", "")}"; nomic.Title = titleNode.InnerText.Trim(); nomic.ImgUrl = imgUrl; nomic.Description = desNode.InnerText; list.Add(nomic); } //分页 var pageHtmlNodes = htmlDocument.DocumentNode.SelectNodes("//div[@class='turn']//a"); foreach (var htmlNode in pageHtmlNodes) { var url = htmlNode.GetAttributeValue("href", ""); if (!string.IsNullOrEmpty(url)) { var urls = url.Substring(0, url.Length - 5).Split('-'); string pageIndex = urls[urls.Length - 1]; var pageKey = $"{title}_{pageIndex}"; var realUrl = $"http://www.weijiaoshou.cn{htmlNode.GetAttributeValue("href", "")}"; redis.SetCache(pageKey, realUrl, TimeSpan.MaxValue); } } return(list); }