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);
在使用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);
相关文章推荐
- Jsoup解析HTML实例及文档方法详解
- python抓取某汽车网数据解析html存入excel示例
- Python HTMLParser模块解析html获取url实例
- 使用HttpClient和jsoup获取并解析html
- HttpClient+jsoup登录+解析 163邮箱
- Jsoup解析html
- jsp动态生成table
- 使用BeautifulSoup解析HTML和XML
- struts2返回到JSP页面的html字符串如何在JSP页面上解析成html标签 (ognl表达式)
- 使用Jsoup解析和操作HTML
- python获取CSDN个人收藏的文章链接和标题,然后发送到指定邮件
- Java使用jsoup解析html
- QQlite 插件开发总结
- 从一段html的table标签中按列提取信息
- jsoup解析html文件实例
- Android根据网址获取标题和图片(解析Html获取标题和图片)
- 通过html解析网页数据
- Python利用BeautifulSoup解析Html的方法示例
- 使用ProcessBuilder执行本地命令
- EasyUI_Datagrid上下键编辑行,锁定编辑单元格所在的列(二)