当サイトの予測情報をCSVファイルに変換するScalaスクリプトを公開します 推奨銘柄無料公開ブログ

当サイトの予測情報をCSVファイルに変換するScalaスクリプトを公開します

これまでに当サイトに投稿してきた全ての予測情報を一括でダウンロードしCSVファイルに変換するScalaスクリプトを公開します。
Scala 2.9.1にて動作確認済みです(Scalaインタプリタのダウンロードはこちらからどうぞ)。
import scala.xml.XML
import scala.io.Source
import java.lang.Thread
import java.io.PrintWriter

val latestUrl = {
val node = XML.load("http://stockedge.jp/?xml")

val item = node.\\("item").head

item.\("link").text
}

val ArticleIdRe =
"http://stockedge.jp/blog-entry-(\\d+)\\.html".r

val ArticleIdRe(id) = latestUrl

val PubDateRe = """\d\d\d\d-\d\d-\d\dT\d\d""".r

val TrRe = ";tr>.+?;/tr>".replaceAll(";","<").r

val csvRows = (6 to id.toInt).map{ i =>
Thread.sleep(1000)

val url =
"http://stockedge.jp/blog-entry-" + i + ".html"

println("download " + url)

val lines =
Source.fromURL(url, "UTF-8").getLines.toList

lines.find(_.contains("pred")).map{ table =>
val html = lines.mkString

val pubDate = PubDateRe.findFirstIn(html).get

TrRe.
findAllIn(table).
filter(line =>
line.contains("dir_up") ||
line.contains("dir_down")).
map(_.replaceAll(";/td>;td>".replaceAll(";","<"),",").replaceAll("<[^>]+>","")).
map(pubDate + "," + _)
}
}.flatten.flatten

val pw = new PrintWriter("pred.csv")

csvRows.foreach(pw.println)

pw.close()
このスクリプトを走らせると、カレントディレクトリに「pred.csv」という名前のCSVファイルが作成されます。
pred.csvは以下のようなフォーマットになっています。
2014-08-27T04,下降,スリープログループ【2375】,290,2014-09-26
2014-08-28T04,下降,ラクーン【3031】,520,2014-09-27
2014-08-29T04,上昇,パーク24【4666】,1770,2014-09-28
2014-08-29T04,下降,菱洋エレクトロ【8068】,1165,2014-09-28
2014-08-30T04,下降,土屋ホールディングス【1840】,313,2014-09-29
2014-08-30T04,上昇,アイ・ケイ・ケイ【2198】,872,2014-09-29
...
このCSVファイルの行はそれぞれ、予測の公開日、予測方向、銘柄名、現在の株価(前日の終値)、予測の終了日、に対応しています。「2014-08-28T04」は「2014年08月27日04時」を意味します。
CSVファイルになっていれば当サイトの予測が実際にどの程度当たっているのか検証しやすくなります。どうぞご利用ください。  

コメント

コメントの投稿

  • URL
  • コメント内容
  • password
  • 秘密
  • 管理者にだけ表示を許可する

トラックバック

トラックバックURL: http://stockedge.jp/tb.php/152-ee7ec681