QQLite 插件开发 之 html解析 CsQuery(C#)

       在使用C#开发QQLite插件过程中,需要从第三方获取数据,通常都是选择json等,但是这次由于数据由第三方提供,由不得商量,对方返回的Html,需要自己从html 中提取出需要的数据,然后使用。

       解析Html 通常可用的第三方库有:htmlagilitypack  和 这个CsQuery ,但是前面一个看了几遍,一直没搞懂怎么用的,后来就选择了 CsQuery这个第三方库,这个CsQuery 的缺点是:目前维护不积极。

         下面都是以CsQuery 为例进行说明,主要就是参考github 的文档,主要步骤就是:

        (1)加载需要解析的Html

        (2)使用class Id 或者 标签 从 html 中选取出可以目的数据部分

        下面是简单的示例代码:

        使用C# 创建的控制台应用,对应的1.html的结构为:    http://caipiao.163.com/award/cqssc/20160713.html

            var dom = CsQuery.CQ.CreateFromFile("1.html");
            int sum = dom["[data-win-number]"].Length;
            string max_phase = "0";
            string max_win_num = "0";
            if (sum == 0)
            {
                max_phase = "0";
                max_win_num = "0";
            }
            else {
                Dictionary<string, string> dict = new Dictionary<string, string>();
                int i = 0;
                for (i = 0; i < sum; i++)
                {
                    CsQuery.IDomObject object1 = dom["[data-win-number]"][i];
                    dict.Add(object1.GetAttribute("data-period"), object1.GetAttribute("data-win-number"));
                }

                var dicSort = from objDic in dict orderby objDic.Key select objDic;
                int index = 0;
                foreach (KeyValuePair<string, string> kvp in dicSort)
                {
                    if (index == sum - 1)
                    {
                        max_phase = kvp.Key;
                        max_win_num = kvp.Value.Replace(" ", "").ToString();
                    }
                    index++;
                }
            }

            Console.WriteLine(max_phase);
            Console.WriteLine(max_win_num);

 

        

转载于:https://my.oschina.net/hnxymjj/blog/716999

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值