public void getAllDatas(){
String address="http://nba.sports.sina.com.cn/league_order1.php";
try {
URL url=new URL(address);
try {
InputStream inputStream=url.openStream();
InputStreamReader inputStreamReader=new InputStreamReader(inputStream,"gbk");
BufferedReader reader=new BufferedReader(inputStreamReader);
String rankRegEx = ">\d{1,2}";// 排名正则
String teamRegEx = ">[^<>]*";// 队名正则
String dataRegEx = ">\d{1,3}(\.)\d{0,2}";// 正常数据正则
String percentRegEX = ">\d{1,2}(\.)*(\d)*%";// 百分比数据
GetRegExData regExData=new GetRegExData();
String temp= "";//存放临时数据
int flag=0;
String tempRank = "";// 存放匹配到的返回数据
String tempTeam = "";// 存放匹配到的返回数据
String tempData = "";
String tempPercent = "";
Listlist=new ArrayList();
Mysql mysql=new Mysql();
while ((temp=reader.readLine())!=null){
//匹配排名
if ((tempRank = regExData.getData(rankRegEx, temp)) != "") {
tempRank = tempRank.substring(1, tempRank
.indexOf(""));
// System.out.println("排名:" + tempRank);
list.add(tempRank);
flag++;
}
// 匹配球队
// 由于该正则会匹配到其他地方的数据,需给它一个标识符,让它从"找到排名位置"才开始匹配
if ((tempTeam = regExData.getData(teamRegEx, temp)) != ""
&& flag == 1) {
tempTeam = tempTeam.substring(1, tempTeam
.indexOf(""));
// System.out.println("球队名称:" + tempTeam);
list.add(tempTeam);
flag = 0;
}
// 匹配正常数据
if ((tempData = regExData.getData(dataRegEx, temp)) != "") {
tempData = tempData.substring(1, tempData
.indexOf(""));
// System.out.println(tempData);
list.add(tempData);
}
// 匹配百分比数据
if ((tempPercent = regExData.getData(percentRegEX, temp)) != "") {
tempPercent = tempPercent.substring(1, tempPercent
.indexOf("</span></td>"));
// System.out.println(tempPercent);
list.add(tempPercent);
}
}
reader.close();
Object[] arr = list.toArray();// 将集合转换为数组
int a = -15;
int b = 0;
String sql = "insert into data(rank,team,win,lose,winpercent,windifferent,score,losescore,scoredifferent,host,out,part,square,recent,winplus)values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
for (int i = 0; i <30; i++) {
a += 15;
b += 15;
if (b <=450) {
Object[] arr1 = Arrays.copyOfRange(arr, a, b);
mysql.insertNewData(sql, arr1);
System.out.println("正在采集数据..当前采集数据:" + (i + 1) + "条");
}
}
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
}