Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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);
        }