今回は入手したhtmlから必要な情報を抜き出していきます。
htmlの情報はタグで囲まれており、
必要な情報は<td>2014年9月2日</td><td>148</td><td>151</td><td>148</td><td>151</td><td>18,000</td><td>151</td>の部分です。
この行を正規表現で抜き出し、それぞれを変数に格納していこうと思います。
ちなみに抜き出す部分はブラウザで言うと下の部分です。
ではコードを見ていきます。
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class matching3 {
String name = ""; //企業名
String day= ""; //日付
String hajimene= ""; //始値
String takane= ""; //高値
String yasune= ""; //安値
String owarine= ""; //終値
String dekidaka= ""; //出来高
public void matching(matching3 obj, int ccode){
getURL4 aa = new getURL4();
String str1;
str1 = aa.getURL4(ccode);
String str2 = "";
//System.out.println(str1+"¥n");
String regex = ""; //まずはざっくり抽出
Pattern p = Pattern.compile(regex);
Matcher m1 = p.matcher(str1);
while (m1.find()){ //マッチする限りループ
String bb = m1.group();
str2 =str2 + bb; //文字列の追加
}
//System.out.println(str2);
String regex2 ="([0-9]{4}年[0-9]{1,2}月[0-9]{1,2}日)([0-9|,]+) ([0-9|,]+) ([0-9|,]+) ([0-9|,]+) ([0-9|,]+)";
Pattern p2 = Pattern.compile(regex2 );
Matcher m2 = p2.matcher(str2);
if(m2.find()){
day= m2.group(1); //日付
hajimene= m2.group(2); //始値
takane= m2.group(3); //高値
yasune= m2.group(4); //安値
owarine= m2.group(5); //終値
dekidaka= m2.group(6); //出来高
//System.out.println("日付"+day+"¥n"+"始値"+hajimene+"¥n"+"高値"+takane+"¥n"+"安値"+yasune+"¥n"+"終値"+owarine+"¥n"+"出来高"+dekidaka +"¥n");
}
System.out.println("日付"+day+"¥n");
System.out.println("始値"+hajimene+"¥n");
System.out.println("高値"+takane+"¥n");
System.out.println("安値"+yasune+"¥n");
System.out.println("終値"+owarine+"¥n");
System.out.println("出来高"+dekidaka +"¥n");
String regex3 ="(.*?)
";
Pattern p3 = Pattern.compile(regex3);
Matcher m3 = p3.matcher(str2);
if(m3.find()){
name = m3.group(1);
}
System.out.println(name);
obj.day = day;
obj.name = name;
obj.hajimene = hajimene;
obj.takane = takane;
obj.yasune = yasune;
obj.owarine = owarine;
obj.dekidaka = dekidaka;
}
}
これで必要な情報だけ抜き出せるはずです。
あとは個々で抜き出した情報をcsvファイルにして保存できるようにすればいいでしょうか。
まだまだコードが煩雑すぎると思いますので、ひと通り完成したら書き直さないとなと思います。
参考
システムトレーダーの冒険の書
ParserCallbackでHTMLのタグを解析する
Java正規表現の使い方
正規表現を使う
正規表現によるマッチング
パターン内の括弧毎にマッチした部分文字列を取得
登録:
コメントの投稿 (Atom)

0 件のコメント:
コメントを投稿