2014年7月23日水曜日

一つのレースだけが中止になることもある

Yahoo競馬からデータの取得を続けていると、なぜか、解析できないレースがあった。それにアクセスしてみると、出馬表にリダイレクトされる。転送先の出馬表を見てみると、「強風のため中止」とある。で、このレースは、「第126回中山大障害(J・GI)」。他のレースはできるが、このレースは障害レースであり、他の平地のレースは強風でもできたということだ。

HttpGet hg = new HttpGet(url);
List<Header> headers = new ArrayList<Header>();
headers.add(new BasicHeader("Accept-Charset","utf-8"));
headers.add(new BasicHeader("User-Agent", "HorseRaceAnalyzer"));
RequestConfig config = RequestConfig.custom().setRedirectsEnabled(false).build();
HttpClient hc = HttpClientBuilder.create()
.setDefaultRequestConfig(config)
.setDefaultHeaders(headers).build();

HttpResponse hr = hc.execute(hg);
int status = hr.getStatusLine().getStatusCode();
if (status != HttpStatus.SC_OK) {
return null;
}
return EntityUtils.toString(hr.getEntity(), "UTF-8");

Webページをhttp-getする際に、リダイレクトを止めることにした。そして、このレースのデータはエラーとして取り扱い、データとして取得しないことにする。その部分を含めて、http-getの部分のソースは上記。

0 件のコメント:

コメントを投稿