使用HttpClient抓取双色球数据

本文展示了如何使用HttpClient库从指定网址抓取双色球彩票的历史数据。通过设置请求参数,获取数据并解析HTML,提取红色和蓝色球号,最终将数据存储为整数数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需要的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 = new HttpGet("http://trend.baidu.lecai.com/ssq/redBaseTrend.action?startPhase=2015092&endPhase=2017085&phaseOrder=up&coldHotOrder=number&onlyBody=false");
get.setHeader("Referer",referer);
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()+"条数据");

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值