Google スプレッドシートで株価情報とか取得しちゃいましょう。
初めに
オンラインで使えるエクセルみたいなもんなんだけど。
エクセルは知らない人は、ググれ。
さすがにそこまではフォローせんわ。
僕はさぼてん君派です。っていう人いたらなかなかマニアック。
私は株データとか管理するのにGoogleスプレッドシートを使ってるんですけど、なぜかというと、こうやってブログに公開しやすいから。
ちなみに今こんなん作ってます。
証券コードを入れれば会社名とかデータが出ちゃうって寸法ですわ。
おーこりゃ便利って思う?
単純に管理とかデータ見つけるならそれ用のアプリ使った方がいいんじゃないかなって私は思います。
Googleスプレッドシートを使う前に
使うにはまずグーグルアカウント登録しないとダメです。
作り方?
いろんなホームページとかで解説されてるからググろうぜ。
ここはやっぱり検索サイトもグーグル様を使ってあげましょうや。
グーグル様素晴らしいと思います。
うん、いいんじゃないですか。
グーグルアカウント 使い方 で検索したら一番上に出てきたサイト
ここは自分で記事を作ってアクセス数を稼いでアフィリエイトでウハウハしたい所だけどめんどくさいからねしょうがないね。
Google スプレッドシートを使ってみよう
はい使い方もググりましょう。
Excel代わりに使えるGoogleドライブ「スプレッドシート」の使い方活用術! | hoomey
とりあえず一番上にでてきた奴を貼らせていただきました。
ほとんどエクセルと同じように使えるわけなんですけど、オンラインで使うアプリという事で(オフラインでも使えなくはないけど)オンラインだからこそ出来る機能が搭載されています。
いわゆるウェブスクレイピング(Web scraping)ってのが凄く簡単に出来るんです。
プログラムとか出来る方なら、他にいろんな手段あると思いますし、excelのVBAとか使ってもできると思うんですが、簡単にできるって事ではGoogle様に勝てる所はないんじゃないかな。
私がバイオ銘柄まとめを作ってるのもまさにそのオンラインだからこそできる機能を使っているわけですね。
それが非常に便利なんです。
グーグルスプレッドシートでスクレイピング
やり方もググりましょう。
俺はgoo派だ。うん。いいんじゃないですか。
gooといえばアダルトサイトに乗っ取られた事ありましたよね。
検索して一番上に出てきた方のをはらせて頂きました。
このimportxmlこれが便利なんですね。
使い方とかは上のサイトが分かりやすかったので一読して頂ければよろしいかと思います。
excelと同じようにセルに=importxml(URL,xpath)を入れればいいんですが
この私のブログを見てるような人ですから、検索サイトで上位に表示されていないと思うので、「importxml 使い方」で検索して
「なるほど。わからん」って方が多いと思います。
「xpath?なんだそれって」
そこで、なるほど!わからん!!!って人が、検索サイトの上から順に回ってきまして、私のブログに辿り着いてるんじゃないかなってことで、そんな人のために具体例を書いていきますので、それをちょこっと弄っていく感じでやるのがよろしいのではないかなと思います。
流石にちょっと弄くれるようになるくらいは勉強しましょう。
(サイトによっては中止行為に当たるようなので自己責任で使いましょう)
とりあえずやってみましょう
で、まずは一番初めですね。
日経新聞様の企業概要ページから住所を取得してみましょう。
=importxml(url,xpath)というのをセルに入れてみればいいです。
なぜ日経新聞様かというとそれは、説明しやすいから!
ヤフーファイナンスだとちょっといろいろ面倒くさいんだよね。
urlは例えばタカラバイオさんの場合
http://www.nikkei.com/markets/company/gaiyo/gaiyo.aspx?scode=4974です。
実際にセルに入力する場合は、urlを"これで囲まなくてはいけません。いわゆるダブルクオート。
つまり"http://www.nikkei.com/markets/company/gaiyo/gaiyo.aspx?scode=4974"を=importxml(url,xpath)のurlに入れる必要があります。
xpathですが、簡単な取得方法がありますので検索しましょう。
私の解説よりきっとわかりやすい。
chromeさんだと簡単に取得できるのでおすすめですよ。
入れてない人はインストールしましょう。
私はグーグル信者ですので、グーグル様の商品はガンガン宣伝してきますよー。
一応chromeさんでxpathを取得しかたを簡単に説明したいと思います。
今回はタカラバイオさんの企業概要ページから、住所を取得したいと思います。
タカラバイオ(株) (タカラバイオ) 4974 企業プロフィル :日経会社情報:マーケット :日本経済新聞ここにアクセスすると
こんなページがでてきます。
本社住所という所のxpathを取得したいと思います。
まずはchromeさんで、F12キーを押しましょう。
そうすると、右側にこんなんが表示されると思います。
ここでオレンジ色で囲まれた↑ありますよね。
これをクリックしましょう。
クリックした状態でタカラバイオの本社住所の右側。
つまり滋賀県草津市のあたりにカーソルを合わせてくクリックして下さい。
そうすると右側のソースとか書いてあるところが
こんな感じで強調されます。
あとはそこを右クリックをしまして、copy to xpathを選択しましょう。
これでxpathの取得は終了となります。
後はペーストしますと、
//*[@id="CONTENTS_MARROW"]/div[3]/div[2]/table/tbody/tr[4]/td
これが得られるはずです。
で、これをgoogle スプレッドシートのxpathに入れればいいんですが
ポイントはこのxpathとやらをダブルクオートで囲むのですけど[@id="CONTENTS_MARROW"]の部分ですね、ダブルクオートの中にダブルクオートが入る事になりまして、よろしくないんですね。
ですから、ダブルクオートをシングルクオートに変更する必要があります。
シングルクオートは'これですね。7をシフトキーで押したら出てきますぜ。
つまり、"//*[@id='CONTENTS_MARROW']/div[3]/div[2]/table/tbody/tr[4]/td"
を入力する必要があります。
最終的には
=importxml("http://www.nikkei.com/markets/company/gaiyo/gaiyo.aspx?scode=4974","//*[@id='CONTENTS_MARROW']/div[3]/div[2]/table/tbody/tr[4]/td")
をセルに入力する事になります。
とりあえず入れてみてください。
そするとこんな感じに住所が取得できます。
やりましたな。
続いて同じような感じで、いっこ下の欄にある電話番号を取得してみましょう。
電話番号のxpathを取得しみます。
同じような手順でやってみて、取得してみてください。
そうするとある法則性がわかるんじゃないかな。
ちなみに電話番号のxpathは
//*[@id="CONTENTS_MARROW"]/div[3]/div[2]/table/tbody/tr[5]/td
となります。
ここで住所が
//*[@id='CONTENTS_MARROW']/div[3]/div[2]/table/tbody/tr[4]/td
ですから比較してみると住所がtr[4]、電話番号がtr[5]である事がわかります。
スプレッドシートに入れるときは、
=importxml("http://www.nikkei.com/markets/company/gaiyo/gaiyo.aspx?scode=4974","//*[@id='CONTENTS_MARROW']/div[3]/div[2]/table/tbody/tr[5]/td")
と入力することになります。
もう、こうなるとわかりますよね?
例えばもう一つ下の成立日を取得したければtr[5]をtr[6]に買えればいいわけです。
基本はこれで取得ができます。
で、これは簡単なんですね。
これが全てで使えるかっていうとそうではないんです。
たとえばyahooファイナンスから株価を取得しようとした場合、同じような手順でやるとエラーが起きて取得できません。
その辺りのやり方を詳しく説明してくれてるサイトがありましたので、
Google Docs スプレッドシートのimportXMLの使い方 | Seamonkey-Director
検索して2番めにでてきたサイトです。
分かりやすかったのでどうぞ。
このサイトをみて見ればだいたい検討がつくんじゃないですかねえ。
urlを見て気づいた事はありませんか?
例えばタカラバイオの場合
http://www.nikkei.com/markets/company/gaiyo/gaiyo.aspx?scode=4974
これなんですが最期の4974。これが証券コードになります。
この最期の証券コードの数字をそーせいグループの4565に変更すればそーせいグループの情報が取得できます。
それで、いちいちURLを変更するのが面倒くさい!
そう思いますよね?思いますよね?思ってますよね?
そこで便利なのが"CONCATENATE"関数です。
2つのセルを結合できる関数なんです
一つに"http://www.nikkei.com/markets/company/gaiyo/gaiyo.aspx?scode="これを入れておいて、別のセルに証券コードを入れておけば、証券コードをいれたセルの数字を変更するだけでいろんな情報が得られるって寸法ですわ。
一番初めに入れた画像をもう一度。
ここでセルのA2にそーせいの証券コード"4565"が入ってまして、セルのB2に"そーせいグループ(株)"って書いてありますよね。
じつはこのB2のそーせいグループ(株)も日経新聞様から取得してるんですね。
朝日インテックとかメディキットも一緒です。
会社名のxpathは//*[@id='CONTENTS_MARROW']/div[3]/div[2]/table/tbody/tr[1]/td
となりまして、これを"CONCATENATE"でくっつけますと、最終的にいれるのは
=IMPORTXML(CONCATENATE("http://www.nikkei.com/markets/company/gaiyo/gaiyo.aspx?scode=",A2),"//*[@id='CONTENTS_MARROW']/div[3]/div[2]/table/tbody/tr[1]/td")
となります。
A2に証券コードをいれて、A3にこれを入れてやってみましょう。
そーせいグループ(株)が取得できたんじゃないかな?
こんな感じで日経新聞様からいろんな情報抜き出して作ったのが上の画像というわけでございます。
他のサイトでも似たような感じでできるのでいろいろやってみるといいと思いますよ。
それで、私のサイトを見るような人ですから、それじゃあ駄目なんですよね。
わかってます。
作ったのを渡せよと・・・
サンプルを下においておきますのでどうぞ。
使い方はググりましょう。
俺はライコスを使いたいんだ!!って言う人ははま(ry
編集はできないのでコピーを作成しましょう。
ファイルからコピーを作成して使ってみましょう。
そうすれば編集できるんじゃないかな。
使用は自己責任でお願いしまふ。