您的位置:首页 > 产品设计 > UI/UE

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

2016-07-24 00:00 525 查看
摘要: 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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  QQLite 解析html CsQuery