正则表达式解析

RICHEER COCA 2014-06-08 10:51:06
正则表达式解析

举例:网页

http://cp.360.cn/coophall/ssq/?LotIssue=2014064&UserName=&TotalMoney=0&SponsorDeduck=0&ProjState=0&SortIndex=&OrderBy=&ProjProgress=0-1&PlayID=&PassMode=&Page=1&t=1402194693568

这里的PAGE有177页。
大家好,我想请教一下,如何使用java 正则表达式, 提取出

每一个 projid 例如 projid=\"351849190\"对应的详情,详情的网址如下

http://cp.360.cn/detailinfo/coopbuy/traceid/0/projid/351849190/lotid/220051
引用
详情
红球胆码:20
红球拖码:10 12 16 17 18 23 27 28 29 33
蓝球:11


每一个 projid 对应的这些数据如何用正则表达式解析并且保存到指定的SQLSERVER 2008的数据库里(库名

表名ssqData用户名lottery登陆密码123356)?


求助大神,谢谢你们。

附ssqData建表语句
    
USE [SSQBaseDT]
GO

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ssqDATA]') AND type in (N'U'))
DROP TABLE [dbo].[ssqDATA]
GO


---双色球数据采集格式
CREATE TABLE [dbo].[ssqDATA](
[ID] [int] IDENTITY(1,1) NOT NULL,--字段1是序号
[Type] [nvarchar](255) NULL, --字段2是[彩票类型 SSQ]
[issue_id] [nvarchar](255) NULL, --字段3是[期号]
[united_id] [nvarchar](255) NULL, --字段4是[用户发单编号]
[userName] [nvarchar](255) NULL, --字段5是[用户名]
[notext] [nvarchar](20) NULL, --字段6是[红球号码]
[blu] [nvarchar](2) NULL, --字段7是[蓝球号码]
[multiple] [int] NULL, --字段8是[倍投数]
[site] [nvarchar](25) NULL, --字段9是目标网站
[保底类型] [nvarchar](25) NULL --字段10是未满员全额保底类型
) ON [PRIMARY]

GO
...全文
234 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
RICHEER COCA 2014-06-12
  • 打赏
  • 举报
回复
引用 3 楼 rui888 的回复:
String strURL =
			 "http://cp.360.cn/coophall/ssq/?LotIssue=2014064&UserName=&TotalMoney=0&SponsorDeduck=0&ProjState=0&SortIndex=&OrderBy=&ProjProgress=0-1&PlayID=&PassMode=&Page=1&t=1402194693568";
			 URL url = new URL(strURL);
			 HttpURLConnection httpConn = (HttpURLConnection)
			 url.openConnection();
			 httpConn.setRequestMethod("GET");
			 httpConn.connect();
			
			 BufferedReader reader = new BufferedReader(new InputStreamReader(
			 httpConn.getInputStream()));
			 String line;
			 StringBuffer buffer = new StringBuffer();
			 while ((line = reader.readLine()) != null) {
			 buffer.append(line);
			 }
			 reader.close();
			 httpConn.disconnect();
			 Matcher  m = Pattern.compile("projid=\\\\\"\\d*\\\\\"").matcher(buffer.toString());
		     while (m.find()) {
		    	System.out.println(m.group());
			}
非常感谢
tony4geek 2014-06-09
  • 打赏
  • 举报
回复
String strURL =
			 "http://cp.360.cn/coophall/ssq/?LotIssue=2014064&UserName=&TotalMoney=0&SponsorDeduck=0&ProjState=0&SortIndex=&OrderBy=&ProjProgress=0-1&PlayID=&PassMode=&Page=1&t=1402194693568";
			 URL url = new URL(strURL);
			 HttpURLConnection httpConn = (HttpURLConnection)
			 url.openConnection();
			 httpConn.setRequestMethod("GET");
			 httpConn.connect();
			
			 BufferedReader reader = new BufferedReader(new InputStreamReader(
			 httpConn.getInputStream()));
			 String line;
			 StringBuffer buffer = new StringBuffer();
			 while ((line = reader.readLine()) != null) {
			 buffer.append(line);
			 }
			 reader.close();
			 httpConn.disconnect();
			 Matcher  m = Pattern.compile("projid=\\\\\"\\d*\\\\\"").matcher(buffer.toString());
		     while (m.find()) {
		    	System.out.println(m.group());
			}
RICHEER COCA 2014-06-08
  • 打赏
  • 举报
回复
发布时分数设定有误,可以加分到100
约翰羊 2014-06-08
  • 打赏
  • 举报
回复
Pattern p = Pattern.compile("<em id=\"curr_issue\">([^<>]*)</em>"); //期号 p = Pattern.compile("<span id=\"projid\">([^<>]*)</span>"); //方案编号 p = Pattern.compile("<a class=\"name nZhanji\" uid=\"[0-9]*\" href=\"#\">([\\S]*)</a>"); //发起人 p = Pattern.compile("<span class=\"k c9\">蓝球:</span><span class=\"v\" style=\"width:230px;\">([0-9\\s]*)</span>"); //蓝球 红球因为情况比较多,还得再多提供些数据。第一个网页我没打开。 反正都差不多,供你参考吧。 用的时候,这么用 Pattern p = Pattern.compile("<em id=\"curr_issue\">([^<>]*)</em>"); //期号 String line = "<h1 class=\"cz-name\">双色球  <span> 第<em id=\"curr_issue\">2014064</em>期<span style=\"font-weight:normal;\"></span>"; //这是从网页源码里复制出来的 Matcher m = p.matcher(line); if(m.find()){ System.out.println(m.group(1)); }

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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