需要的jar包如下:
代码如下:
public static void main(String[] args) throws IOException {
lotterSsq();
}
static void lotterSsq(){
CloseableHttpClient client = null;
CloseableHttpResponse response = null;
BasicCookieStore store = new BasicCookieStore();
client = HttpClients.custom().setDefaultCookieStore(store).build();
HttpGet get = null;
List<NameValuePair> param = new ArrayList<NameValuePair>();
String referer= "http://trend.baidu.lecai.com/ssq/redBaseTrend.actionstartPhase=
2011001&endPhase=2012001&phaseOrder=up&coldHotOrder=number&onlyBody=false";
try{
param.add(new BasicNameValuePair("orgCity", "CSX"));
param.add(new BasicNameValuePair("dstCity", "HGH"));
param.add(new BasicNameValuePair("takeoffDate", "2015-12-14"));
param.add(new BasicNameValuePair("returnDate", "2015-12-14"));
param.add(new BasicNameValuePair("tripType", "0"));
param.add(new BasicNameValuePair("adultNum", "1"));
param.add(new BasicNameValuePair("x", "22"));
param.add(new BasicNameValuePair("y", "12"));
param.add(new BasicNameValuePair("queryFlightRequestId", "s7u9cpXjBHWeMBd8zoWyH9F"));
get.setHeader("Host","trend.baidu.lecai.com");
get.setHeader("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36");
get.setHeader("Cookie","_lcas_uuid=1806738234; _adwp=110406678.7678942889.1488892299.1491399409.1491480281.5; _adwc=112321473; _adwr=112321473%23https%253A%252F%252Fwww.baidu.com%252Flink%253Furl%253DMZJZPhorjF_3M-zFqrhcCCn_x7lquPYhvkBiQ9Eg8h-MvBFzFCcS1cZ2b1k7iJinR-ECC4Gp3e7csYzalfxFmrZAChXF4Y7W7r980mUiHpW%2526wd%253D%2526eqid%253De9aae35700057dbe0000000658e62d83; _adwb=112321473; Hm_lvt_6c5523f20c6865769d31a32a219a6766=1488894409,1491059736,1491399409,1491480282; Hm_lpvt_6c5523f20c6865769d31a32a219a6766=1491482003; Hm_lvt_9b75c2b57524b5988823a3dd66ccc8ca=1488894409,1491059736,1491399410,1491480282; Hm_lpvt_9b75c2b57524b5988823a3dd66ccc8ca=1491482003");
System.out.println("发送请求");
response = client.execute(get);
List<Cookie> c = store.getCookies();
StringBuffer sb = new StringBuffer();
for (Cookie i : c) {
sb.append(i.getName()+"="+i.getValue()+";");
}
System.out.println("获取响应");
String html = EntityUtils.toString(response.getEntity(),"UTF-8");
System.out.println("开始转换");
parseHtmlToIntArray(html);
response.close();
client.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
static void parseHtmlToIntArray(String html){
Document doc = Jsoup.parse(html);
Element el = doc.getElementById("chartTable");
Element tbody = el.getElementsByClass("omit_tbody").get(0);
Elements tr = tbody.getElementsByTag("tr");
Elements tds = null,blue = null;
List<int[]> data = new LinkedList<int[]>();
int blueBall = 0;
int [] buff = null;
for(int i = 0;i<tr.size();i++){
tds = tr.get(i).getElementsByAttributeValueContaining("class", "chart_table_td omission_entry omission_hit red_ball");
buff = new int[7];
for(int j = 0; j < 6; j++)
buff[j] = Integer.valueOf(tds.get(j).text());
blue = tr.get(i).getElementsByAttributeValueContaining("class","blue_ball");
blueBall = Integer.valueOf(blue.get(0).text());
buff[6] = blueBall;
data.add(buff);
System.out.println(Arrays.toString(buff));
}
System.out.println("总共获取了"+data.size()+"条数据");
}