ブログトップ 記事一覧 ログイン 無料ブログ開設

それはそれ。これはこれ。 このページをアンテナに追加 RSSフィード

2003 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 03 | 04 | 05 | 06 | 07 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 11 | 12 |
2013 | 01 | 02 | 04 | 05 | 07 | 08 | 10 | 11 | 12 |
2014 | 02 | 03 | 07 | 08 | 09 | 10 | 11 | 12 |
2015 | 01 | 02 | 03 | 05 | 06 | 07 | 11 |
2016 | 07 |
2017 | 01 | 03 |

2012-12-31(月)

[] Yahooファイナンス株価時系列テキスト Yahooファイナンスの株価時系列をテキストにを含むブックマーク  Yahooファイナンスの株価時系列をテキストにのブックマークコメント

Yahooファイナンス株価時系列をタブ区切りテキストにして、Excelで開きやすくするスクリプト

下記例は、日経225(998407.O)を2001年1月から2012年12月まで。

ページをめくりながらなので、日付逆順になってしまう。いったん全部をArrayに入れてsortしようかと思ったけど、Excelソートすればいいのでそのまま。

#!/usr/local/bin/ruby
# coding: utf-8
require "mechanize"
URL = "http://info.finance.yahoo.co.jp/history/?code=998407.O&sy=2001&sm=1&sd=2&ey=2012&em=12&ed=31&tm=d"

agent = Mechanize.new
page = agent.get(URL)

loop do
    puts page.root.xpath("//table[contains(@class,'boardFin')]/tr[position()>1]").map{|tr| tr.xpath("td").map{|td| td.text}.join("\t")}
    nxt = page.root.xpath("//a[text()='次へ']")[0]
    break unless nxt
    page = agent.get(nxt["href"])
end

長い行ができてしまったが、途中改行もしにくい。

XPATH文字列を定数に代入する案もあるが、XPATHの中が見えないとその後のxpath引数がわかりにくいので、やはりそのまま書くべき。

最初mapの手前で改行かなあ。

トラックバック - http://d.hatena.ne.jp/otn/20121231/p1
リンク元