目前做到能分析POJ和HDU的代碼。ZOJ的話因為他存儲用戶的方式是一個數字序列,而不是用戶的id,所以暫時沒有想到解決方案。
這里用到了之前提到的獲取網頁源代碼的
URLAnalysis類。
getPOJSolved方法用于獲得POJ上的解題數;
getHDUSolved方法用于獲得HDU上的解題數;
names數組存放感興趣的用戶。
代碼如下:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class OnlineJudgeFinder {
private static String[] names = {"watashi", "hanfei19910905", "marchalex"};
public static String getPOJSolved(String userId) throws Exception {
String urlString = "http://poj.org/userstatus?user_id=" + userId;
URL url = new URL(urlString);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String line = null;
for(int i=0;i<10;i++)
line = reader.readLine();
int len = line.length();
int i , cnt = 0;
for(i=0;i<len;i++) {
if(line.charAt(i) == '>') {
cnt ++;
if(cnt == 2)
break;
}
}
i ++;
String num = "";
while(i < len && line.charAt(i) >= '0' && line.charAt(i) <= '9') {
num += line.charAt(i);
i ++;
}
return num;
}
public static String getHDUSolved(String userId) throws Exception {
String urlString = "http://acm.hdu.edu.cn/userstatus.php?user=" + userId;
URL url = new URL(urlString);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String line = null;
for(int i=0;i<105;i++)
line = reader.readLine();
int len = line.length();
int i , cnt = 0;
for(i=0;i<len;i++) {
if(line.charAt(i) == '>') {
cnt ++;
if(cnt == 4)
break;
}
}
i ++;
String num = "";
while(i < len && line.charAt(i) >= '0' && line.charAt(i) <= '9') {
num += line.charAt(i);
i ++;
}
return num;
}
public static void getResult() throws Exception {
int n = names.length;
for(int i=0;i<n;i++) {
String name = names[i];
System.out.println(name + " has solved ");
System.out.println("\t" + getPOJSolved(name) + " problem(s) in POJ");
System.out.println("\t" + getHDUSolved(name) + " problem(s) in HDU");
}
}
public static void main(String[] args) throws Exception {
getResult();
}
}
效果如下:
watashi has solved
32 problem(s) in POJ
7 problem(s) in HDU
hanfei19910905 has solved
131 problem(s) in POJ
212 problem(s) in HDU
marchalex has solved
1 problem(s) in POJ
15 problem(s) in HDU
posted on 2015-02-13 13:30
marchalex 閱讀(232)
評論(0) 編輯 收藏 所屬分類:
java小程序