获取网页数据,求一正则表达式

xieyf010 2012-05-02 05:49:33
想获取 http://video.shishicai.cn/haoma/cqssc/list/120.aspx 中的“期号”和“开奖号码”数据存到本地数据库,并在软件界面上通过datagridview显示,格式如下:
期号 开奖号
20120502-069 50760
20120502-068 60414
20120502-067 96379
20120502-066 03571
20120502-065 45134

且以上数据每十分钟更新一期,所以还需定时更新

思路:
1、获得网页源码
2、通过正则表达式获取想要的数据
3、存到数据库
4、datagridview显示

WebClient client = new WebClient();
Byte[] pageData = client.DownloadData("http://video.shishicai.cn/haoma/cqssc/list/120.aspx");
string pageHtml = Encoding.Default.GetString(pageData);

Regex reg = new Regex(**********);//这里的正则表达式怎么写???请教高手!!
MatchCollection mc = reg.Matches(pageHtml);
foreach (Match m in mc)
{
//这里如何将数据存到本地数据库??
}
//之后如何datagridview显示?


求高手完善以上C#程序,跪谢!
...全文
156 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xieyf010 2012-05-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

"BonusNumberString":"((\d,)+(\d|)+\d)","BonusTime":".*[^"]","IssueNumber":"(\d{8}-\d{3})"
[/Quote]

这个正则不对啊,报错!
xieyf010 2012-05-02
  • 打赏
  • 举报
回复
UP,继续请教
瑞卡哥哥 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
引用 5 楼 的回复:

C# code

{"BonusNumberString":"((\d,)+(\d|)+\d)","BonusTime":".*","IssueNumber":"(\d{8}-\d{3})"}
//取组0开奖号码 组3期号
//数据库中的期号要设置唯一约束然后
try
{
//insert into [数据库名] ([列名]) values(值) --循……
[/Quote]

正则表达式的分组 以第一个左括号为组0 第二个左括号为组1 依次……
所以你要取组0和组3
xieyf010 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

引用 5 楼 的回复:

C# code

{"BonusNumberString":"((\d,)+(\d|)+\d)","BonusTime":".*","IssueNumber":"(\d{8}-\d{3})"}
//取组0开奖号码 组3期号
//数据库中的期号要设置唯一约束然后
try
{
//insert into [数据库名] ([列名]) values(值……
[/Quote]
知道了,就是对上面数组的引用,那应该是组0和组2,谢谢,但是还是不会写剩下的。。。
xieyf010 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

C# code

{"BonusNumberString":"((\d,)+(\d|)+\d)","BonusTime":".*","IssueNumber":"(\d{8}-\d{3})"}
//取组0开奖号码 组3期号
//数据库中的期号要设置唯一约束然后
try
{
//insert into [数据库名] ([列名]) values(值) --循环插入
}
catch
{……
[/Quote]
您好,//取组0开奖号码 组3期号,其中组0,组3什么意思?
xscywq 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

引用 3 楼 的回复:

引用 2 楼 的回复:

引用 1 楼 的回复:

你把pageHtml 的代码贴出来

你这个应该用Json解析啊

望大神能深入说一下,谢谢

你获取的数据大概是这样的,是把?
[{"BonusNumberString":"0,9,7,2,5|2|5","BonusTime":"2012-05-02 19:10","IssueNumb……
[/Quote]

同意他的说话 使用 .net 自带的函数就可以反序列化
瑞卡哥哥 2012-05-02
  • 打赏
  • 举报
回复
"BonusNumberString":"((\d,)+(\d|)+\d)","BonusTime":".*[^"]","IssueNumber":"(\d{8}-\d{3})"
瑞卡哥哥 2012-05-02
  • 打赏
  • 举报
回复

{"BonusNumberString":"((\d,)+(\d|)+\d)","BonusTime":".*","IssueNumber":"(\d{8}-\d{3})"}
//取组0开奖号码 组3期号
//数据库中的期号要设置唯一约束然后
try
{
//insert into [数据库名] ([列名]) values(值) --循环插入
}
catch
{
//期号重复的不操作
}
//然后再设置显示


EnForGrass 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 2 楼 的回复:

引用 1 楼 的回复:

你把pageHtml 的代码贴出来

你这个应该用Json解析啊

望大神能深入说一下,谢谢
[/Quote]
你获取的数据大概是这样的,是把?
[{"BonusNumberString":"0,9,7,2,5|2|5","BonusTime":"2012-05-02 19:10","IssueNumber":"20120502-079"},{"BonusNumberString":"8,9,8,1,9|2|5","BonusTime":"2012-05-02 19:00","IssueNumber":"20120502-078"},{"BonusNumberString":"1,4,3,7,0|2|5","BonusTime":"2012-05-02 18:50","IssueNumber":"20120502-077"},{"BonusNumberString":"7,4,4,9,3|2|5","BonusTime":"2012-05-02 18:40","IssueNumber":"20120502-076"},{"BonusNumberString":"3,5,9,4,2|2|5","BonusTime":"2012-05-02 18:30","IssueNumber":"20120502-075"},{"BonusNumberString":"7,3,9,2,2|2|5","BonusTime":"2012-05-02 18:20","IssueNumber":"20120502-074"}];

参考
.Net解析JSON数据
http://www.cnblogs.com/xfrog/archive/2010/04/07/1706754.html
xieyf010 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

引用 1 楼 的回复:

你把pageHtml 的代码贴出来

你这个应该用Json解析啊
[/Quote]
望大神能深入说一下,谢谢
EnForGrass 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

你把pageHtml 的代码贴出来
[/Quote]
你这个应该用Json解析啊
EnForGrass 2012-05-02
  • 打赏
  • 举报
回复
你把pageHtml 的代码贴出来

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧