2014年9月1日月曜日

javaでホームページからhtmlを取得する。

さて、いよいよプラグラミングを開始します。
まず最初にwebページからhtmlファイルを取得しようと思います。

参考


JavaでGETを使った簡単なHTTPアクセ

テストプログラム

URLを指定して、ソース文字列を取得したい

URLからHTMLを取得するプログラム(Java)


この辺を参考にして作ってみました。


取得先のホームページはヤフーファイナンスなのですが、
上は詳細情報で、
下が時系列データです。
下のほうが表になっていて取り出すのは簡単なのですが、
上はリアルタイムも取得できます。

とりあえず難しいものは後回しにして行こうと思いますので、
今回は下の表からデータを取ることにします。

作ったプログラムは↓になります。
import java.awt.im.spi.InputMethod;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class getURL4 {
 public String getURL4(int ccode) {
  String aa = "";
     String reqUrl = "http://stocks.finance.yahoo.co.jp/stocks/history/?code=";

  try {
   aa = getSourceText(new URL(reqUrl + ccode + ".T"));

  } catch (MalformedURLException e) {
   // TODO 自動生成された catch ブロック
   e.printStackTrace();
  } catch (IOException e) {
   // TODO 自動生成された catch ブロック
   e.printStackTrace();
  }
  return aa;


    }
 public static String getSourceText(URL url) throws IOException {
  InputStream in = url.openStream(); //接続

  //文字エンコーディング
  InputStreamReader isr = new InputStreamReader(in, "UTF-8");

  StringBuilder sb = new StringBuilder();

  try {
   BufferedReader bf = new BufferedReader(new InputStreamReader(in));
   String s;
   while ((s=bf.readLine())!=null) {
   sb.append(s);
   }
  } finally {
  in.close();
  }
  return sb.toString();
 }

} 

となりました。
初コードになりますので、至らないことがあると思いますがご容赦下さい。
これで別の関数中でgetURL(code)すればhtmlが帰ってくると思います。

0 件のコメント:

コメントを投稿