Пример #1
0
        public List <ShouYeInfo> result = new List <ShouYeInfo>(); //用于FlipView


        //static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,
        //是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。
        //并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,
        //因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。
        //非静态的方法必须创建对象才能用 而这个静态的方法
        //静态方法必须使用静态变量
        //但是要注意的是,虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量的。
        //因此,如果说想在不创建对象的情况下调用某个方法,就可以将这个方法设置为static。我们最常见的static方法就是main方法,至于为什么main方法必须是static的,
        //现在就很清楚了。因为程序在执行main方法的时候没有创建任何对象,因此只接通过类名来访问。

        //这些跟Java里的类类变量和类方法一样  参考资料http://www.cnblogs.com/dolphin0520/p/3799052.html
        public async Task <List <ShouYeInfo> > GetShouYeInfo()//没有返回值的异步不需要等待
        {
            string html = await GetContent.GetIndex();


            //获取含有首页内容的字符串

            //解析上面的字符串
            HtmlDocument doc = new HtmlDocument();

            doc.LoadHtml(html);
            //找到一个符合条件的标签 括号内参数的格式是//标签名[@属性名='值']
            //var bangumi = doc.DocumentNode.SelectSingleNode("//section");
            //获得所有的子节点
            //var list = bangumi.ChildNodes;
            //list可以用foreach遍历得到每个子节点
            //一个节点的结构:<标签名 属性名1="属性值1" 属性名2="属性值2">内容</标签名>
            //               <ldh class="rbq" price="1">真舒服</ldh>
            //    节点.Attitudes["节点属性名"].Value可以得到属性值
            //    节点.InnerText可以得到内容的值
            //如果内容是其他节点的话可以和上面一样用  节点.SelectSingleNode(string xpath)
            //                          或者用  节点.Child[索引(0开始)]   来得到子节点
            //list=ul


            //c.Lch = list[i].SelectSingleNode(".//em[@class='lch']").InnerText.Replace('楼', '\0');  通过标签与类名查找


            var FlipView     = doc.DocumentNode.SelectSingleNode(".//ul[@class='slider-con']");  //获得//ul[@class='slider-con' 这个的节点
            var FlipViewlist = FlipView.ChildNodes;

            foreach (var F in FlipViewlist)
            {
                var v = new ShouYeInfo();
                v.Link  = F.FirstChild.Attributes["href"].Value;
                v.Image = new Uri(F.FirstChild.FirstChild.Attributes["src"].Value);
                v.Name  = F.FirstChild.FirstChild.Attributes["alt"].Value;
                v.i     = 1;

                result.Add(v);
            }


            var FlipViewBesid     = doc.DocumentNode.SelectSingleNode(".//ul[@m-id='302']");//通过id
            var FlipViewBesidlist = FlipViewBesid.ChildNodes;

            foreach (var F in FlipViewBesidlist)
            {
                var v2 = new ShouYeInfo();    //实例化一个对象
                v2.Link  = F.FirstChild.Attributes["href"].Value;
                v2.Image = new Uri(F.FirstChild.FirstChild.Attributes["src"].Value);
                v2.Name  = F.FirstChild.FirstChild.Attributes["alt"].Value;
                v2.i     = 2;
                result.Add(v2);
            }

            return(result);
        }
Пример #2
0
        public static async Task <List <Tuijian> > GetTuijian()
        {
            List <Tuijian> result = new List <Tuijian>();

            try
            {
                //获取首页内容的字符串
                string html = await GetContent.GetIndex();

                //解析上面的字符串
                HtmlDocument doc = new HtmlDocument();
                doc.LoadHtml(html);
                //通过ID查找
                var Tuijian = doc.DocumentNode.SelectSingleNode(".//@m-id='4'");
                var list    = Tuijian.ChildNodes;

                int i = 0;
                foreach (var item in list)
                {
                    foreach (var it in item.ChildNodes)
                    {
                        var v = new Tuijian();

                        v.Link    = it.FirstChild.Attributes["href"].Value;
                        v.Picture = new Uri(it.FirstChild.FirstChild.Attributes["src"].Value);
                        v.Name    = it.FirstChild.Attributes["title"].Value;
                        v.Time    = it.FirstChild.FirstChild.ChildNodes[2].InnerText;
                        v.UPName  = it.FirstChild.Attributes["userName"].Value;

                        result.Add(v);
                    }
                    i++;
                }
            }

            catch (Exception ex)
            {
            }

            return(result);
        }