2011年12月3日土曜日

Perl で株価を取り込む

Perl でヤフーファイナンスから株価データを取り込むことはできるのだろうかとインターネットで調べたところWeb::Scraperを使ってできるらしいことがわかりました。以下はサンプルです。


#!/usr/bin/perl
use strict;
use warnings;
use Web::Scraper;
use URI;
use Encode;
my $scraper = scraper {
 process '//tr[@bgcolor="#ffffff"]/td[1]','sdata[]' => 'TEXT';
 process '//tr[@bgcolor="#ffffff"]/td[2]','svalue[]' => 'TEXT';
};
  my $res = $scraper->scrape(URI->new("http://table.yahoo.co.jp/t?c=2010&a=11&b=1&f=2010&d=11&e=7&g=d&s=9631.t&y=0&z=&x=sb"));

 my @sdata = @{$res->{sdata}};
 my @svalue = @{$res->{svalue}};
 my $length = @svalue;

 for ( $_= 0; $_ < $length; $_++){
  print encode('utf-8',$sdata[$_]), ",", "\"";
  print encode('utf-8',$svalue[$_]), "\"", ",", "\"","\n";
 }


●このプログラムは、Linux(Ubuntu)上で動作させました。Windows上で実行させる場合には、utf-8 となっているところを、shift-jis にするなどの処理が必要と思います。

●参考にさせて頂いたサイト

http://e8y.net/mag/013-web-scraper/
http://www16.atwiki.jp/netscreen/pages/13.html



0 件のコメント:

コメントを投稿