gnucash と yahoo finance quote
gnucashで株式のデータ取り込む際に今まで こちらのperlスクリプトを利用させていただいていたのですが、作者の方のgithubのサイトにもあるように Yahoo Financeの仕様が変更されたため、株価および投資信託の基準価格が取得できなくなって実は困ってました。
個人的な時間があったのと、折角ソースを公開して頂いているので早速修正に着手してみました。
githubから該当のプロジェクトをfork して何年ぶりかのperl コーディング。オブジェクト指向の記述に戸惑ったものの、perl のHTML scrap処理を調査しつつ修正。その時に参考にさせていただいたサイトは下記の通り。
Yahoo Finance 「部分一致」検索結果が返却されます。さらに50件でページングする仕様になっています。ということは証券コードを50件単位で指定して検索処理を実施しても結果は50件以上返却される可能性があるためページングを考慮する必要がありそうです。
(2012年10月初旬までYahooFinanceの検索結果のページングにバグが存在していたのを確認していたのですが現在(2012/10/24)解消されていました。)
個人的な時間があったのと、折角ソースを公開して頂いているので早速修正に着手してみました。
githubから該当のプロジェクトをfork して何年ぶりかのperl コーディング。オブジェクト指向の記述に戸惑ったものの、perl のHTML scrap処理を調査しつつ修正。その時に参考にさせていただいたサイトは下記の通り。
- http://e8y.net/mag/013-web-scraper/
- http://search.cpan.org/~miyagawa/Web-Scraper-0.37/lib/Web/Scraper.pm
のように該当の証券コードをQueryStringとして付与すれば取得可能となっており、Scrape対象となる箇所のキーとなるhtml tag を検討すれば対応可能と考えていましたが、いくつか問題が発生しました。
- Yahoo Financeでの証券コード検索は「部分一致」検索
- 複数の取引所で上場している会社が存在する
Yahoo Finance 「部分一致」検索結果が返却されます。さらに50件でページングする仕様になっています。ということは証券コードを50件単位で指定して検索処理を実施しても結果は50件以上返却される可能性があるためページングを考慮する必要がありそうです。
(2012年10月初旬までYahooFinanceの検索結果のページングにバグが存在していたのを確認していたのですが現在(2012/10/24)解消されていました。)
- Web:Scraperで "Parsing of undecoded UTF-8 will give garbage when decoding entities" が発生
コメント