Webサイトから自動的に銘柄情報を取得する方法(Googleスプレッドシート)

スプレッドシート雑記
にほんブログ村 株ブログ 配当・配当金へ  にほんブログ村 株ブログ サラリーマン投資家へ  ブログランキングへ 

こんにちは。

みなさんは、自分が保有する銘柄はどのように管理されているでしょうか。


わたしはこれまでExcelで銘柄情報を管理していましたが、先日Googleスプレッドシートに切り替えを行ったお陰で、Webからデータ取得を自動化する仕組みが実現できました。

そのお陰でブログ運営がかなり楽になっています。

ボンドA++
ボンドA++

Excelも似たようなことができるのですが、少しわかりにくいのでGoogleスプレッドシートがお勧めです!

今回はこのスプレッドシートを使ってWebから銘柄情報取得の自動化をご紹介しようと思いますので参考にしてもらえればと思います。


Ad

Googleスプレッドシートを使えばWebから自動的に銘柄情報を取得できる

GoogleスプレッドシートはExcelとは違い、Webベースの表計算システムなので、Webとの相性が抜群です。

このため、わたしはスプレッドシートの関数を利用して、年間配当や配当利回りなどの銘柄情報をWebから自動的に取得できるよう仕組みを作っています。

この自動化のために使っている関数は「IMPORTXML関数」です。

ボンドA++
ボンドA++

Webから年間配当などのデータ取得が自動化されたので、手作業の更新が大幅に減りました。


IMPORTXML関数を使えば、Web上に公開されているページであれば、基本的にデータ取得できるようになっています。

年間配当や配当利回りだけでなく、連続増配年数や株価など色んな情報を拾ってこれるので、管理シートの幅が広がりますね。


IMPORTXML関数は「URL」と「XPath」で指定する

IMPORTXML関数の使い方をご紹介します。

今回はWeb上に公開されている「年間配当」のデータ取得自動化を一例に、IMPORTXML関数の使い方をご紹介しようと思います。

ボンドA++
ボンドA++

簡単に自動化できるようブラウザはGoogle Chromeを使ってください。

以下のように「年間配当」をWeb上のデータから自動取得します。

まず保有銘柄の管理資料を作ります。サンプルとしてTとMOを取り上げています。

今回使う関数は「IMPORTXML関数」なので、赤枠のところに

=IMPORTXML(“URL”,”XPath”)

と入力します。

ボンドA++
ボンドA++

上の数式をコピペしてもOKです!「URL」と「XPath」は説明のために入力しているので、なくても良いです。

実際に入力した画面がこんな感じです↓

これでWebからデータを自動取得する土台ができたので、次は実際に拾ってくるデータを指定していきます。


IMPORTXML関数で「URL」を入力する

今回は米国個別株のTとMOの「年間配当」を取得してみようと思います。

実際に私が使っているStockNewsというサイトで試します。

StockNewsのトップページ上部に検索窓があるので、そこに銘柄のTickerシンボルを入力し、「Search」をクリック。


対象の個別銘柄が表示されたら、次は「Dividends」のタブをクリック。

ボンドA++
ボンドA++

今回は年間配当額を取得するので、配当という意味の英語「Dividends」を選択します。


すると、その銘柄の配当情報がつらつらと書いてあるので、中段くらいまでスクロールして「Annual Dividend」という項目を見つけます。

ボンドA++
ボンドA++

丸で囲われているやつですね。


これがその銘柄の年間配当額なので、これを確認後、スプレッドシートのセルにデータ取得するための情報を入力していきます。


まずは”URL”です。最初にStockNewsのURLをコピーするため、DividendsをクリックしたあとのページでURLをコピーします。


次にスプレッドシートに戻って、IMPORTXML関数の URL の所に先ほどコピーしたURLを貼り付けます。

ボンドA++
ボンドA++

IMPORTXML(“URL“,”XPath”)のURLのところです。

これでデータ参照元のページの指定ができました。


ボンドA++
ボンドA++

ページのURLが変わるとデータが取得できなくなるので、エラーが出たらまずはURLをチェックすると良いです。

IMPORTXML関数で「XPath」を入力する

次に自動的に取得したいデータを指定していきますが、データの取得にはXPathを指定する必要があります。

XPathの取得には、Google Chromeを使うと簡単です。


先ほどURLをコピーしたStockNewsのページで「Ctrl + Shift + C」を同時に押します。

すると右側に何やら文字の羅列が表示されます。


これはGoogle Chromeのデベロッパーツールと呼ばれるもので、そのWebページを構成するHTMLをツリー上に表示してくれています。

デベロッパーツールの内容は、データ取得には関係ないので、特に意識しなくても大丈夫です。


次に左側に表示されたWebページで取得したいデータのところまでスクロールします。

ボンドA++
ボンドA++

今回は「年間配当」取得の自動化ですので、先ほど確認した「Annual Dividend」までスクロールですね。


そして丸で囲われたAnnual Dividendをクリックしてみると、右側のデベロッパーツールが該当スクリプトまで勝手に移動してくれます。


該当スクリプトはわかりやすいように色付けされていますので、そのスクリプトのところで右クリック。「Copy」→「Copy XPath」の順にクリックします。

これでXPathのコピーが完了です。


スプレッドシートに戻り、IMPORTXML関数のXPathのところに先程コピーしたXPathを貼り付けます。

ボンドA++
ボンドA++

IMPORTXML(“URL”,”XPath“)のXPathのところです。

ここで少し細工が必要になります。Googleスプレッドシートでは「”(ダブルクォート)」は数式の因数を区切る役割があるため、因数内で利用するとうまく機能してくれません。

このため、XPath上に「”」があれば、それは「’(シングルクォート)」に変更してあげる必要があります。

「”」を「’」に変更して数式を確定させると、スプレッドシートがWebからデータ取得を開始します。最初は「Loading…」と表示され、


数秒待つと無事Webのデータが表示されるようになりました。

今回はTのAnnual Dividendを拾ってきたので「$2.08」が表示されいます。


ほかの銘柄でも自動取得したい場合は、数式コピーが有効な場合もある

また今度はMOの年間配当額を取得します。

先ほどの作業を繰り返せば同じようにデータ取得が可能ですが、先ほど使った数式をコピーすることで、大幅に時短できる場合があります。

ボンドA++
ボンドA++

多くのサイトは自動取得したいデータが一緒であればXPathは同じである可能性が高いので、URLの変更だけで済むことが多いです。

先ほどTで取得した年間配当額の数式をコピーして、MOの行に貼り付けます。


次にIMPORTXML関数のURL内「T」の部分を「MO」に書き換えます。


そこから数秒待ってみると、無事MOの年間配当額が表示されました。


簡単ですね。これでWebからのデータ取得が完了です。


Webから取得したデータを計算式に組み込む

今回StockNewsから取得した年間配当額は、文字列を含んでいましたので、以下の図のように計算式に組み込むとエラーになります。

ボンドA++
ボンドA++

取得するデータによってはエラーにならないときもありますが・・・

わざわざWebから拾ってきたのに計算に使えないのは不便なので、REPLACE関数を使って不要な文字列を削除します。


一般にREPLACE関数は、ある文字列を別の文字列に変換することを目的にしていますが、今回は「””」とすることで特定の文字列を消すという作業を行います。

=REPLACE(“変換したい文字列”,変換開始位置,変換文字数,”変換後の文字”)

「変換したい文字列」のところに先ほどのIMPORTXML関数の数式をそのまま入力します。

ボンドA++
ボンドA++

この場合、入力するのが数式になるので、因数の区切りとしてのダブルクォート(”)は不要です。

今回のStockNewsから取得したデータは、「スペース」と「$」を含んでおり、それら2文字が文字列になっていましたので、開始位置に「1」、変換文字数を「2」に設定し、変換後の文字は「””」と入力します。

ボンドA++
ボンドA++

数式の左上にREPLACE関数反映後の結果が表示されるので、そこで確認すると確実です。


REPLACE関数を使用した結果、データの文字列が消えて数値として認識されるようになったので、合計見込配当が計算結果として表示されるようになりました。


MOでも同様にREPLACE関数を使って不要な文字列を消して、必要な項目を追加するなど体裁を整えると、以下のように銘柄情報のデータ取得が自動化された一覧表の完成です。


Webからデータを自動で取得してきてくれるので、例えばTが増配して年間配当額が2.10ドルになった場合には、(参照元ページのデータが更新されれば)年間配当が自動で更新されるようになります。

ボンドA++
ボンドA++

こうすることでかなり手間が削減されますね。

ボンドA++
ボンドA++

ブログランキングに参加しています!記事が参考になったという方はどれでも良いのです下のボタンを押してもらえると励みになります!

にほんブログ村 株ブログ 配当・配当金へにほんブログ村 株ブログ サラリーマン投資家へ  ブログランキングへ
Ad
ボンドA++をフォロー
平成生まれのセミリタイア-ボンドA++

コメント

タイトルとURLをコピーしました