株価や決算データをウェブスクレイピングで一気に自動抽出する方法(Octoparseの使い方)【超有料級保存版】
Webスクレイピングで株価や決算データを自動で一気に抽出する方法(Octoparseの使い方)
株式投資の分析を行う際に、Excelを使っている方も多いと思いますが、今まで欲しいデータを1つずつ手入力していた方も多かったと思います。
1画面にまとまっている情報があれば、そのままExcelで何とかコピー&ペーストをしてから、マクロを使って成形して整えたりすることもできますが、もし1画面上に情報がまとまっておらず、別のページを呼び出して、コピペをしなければいけない場合は、ものすごく手間がかかっていたと思います。
従来のやり方
この手間を無くし、一気に自動で行えるのが今回ご紹介する方法です!
誰でも簡単に仕えるので、ぜひご活用ください。
使用するソフトウェア
今回使用するソフトウェアはOctoparse(オクトパース)というものです。1万件までのデータであれば無料で使用できます。
まずこちらからダウンロードしてください。
https://www.octoparse.jp/Download/windows
インストールしてから、Octoparseを起動させた後、Octoparseのサイトへログインする必要がありますので、その新規登録の手続きは各自行ってください。
https://www.octoparse.jp/signup
今回は、決算発表データに加えて、PERや配当利回り等といった情報を別ページから抜き出し、それを1行にまとめて自動で抽出するやり方について説明します。
このやり方がわかれば、別の抽出にも応用できると思いますので、大変便利だと思います。
Octoparseの使い方
例として「株予報」サイトから2022年2月1日の決算データ+その他の情報、65件分を自動で抽出してみます。
データを抽出して作成したいExcel表は以下の通りです。
初めてOctoparse(ウェブスクレイピング)を使う方は、まず以下の手順を忠実に真似をして、どのような手順でデータ抽出を行うのかを理解してください。
1.まずはデータを抽出したいサイトのURLをコピーして、オクトパスに貼り付けます。
「抽出開始」ボタンを押すと自動でページの分析を行います。
2.抽出完了後に、下のデータープレビューを確認してください。
もしここで、自分の欲しいデータ形式で格納されている場合は、そのまま「ワークフローの生成」をクリックしてください。
もし、データープレビューのデータが、自分の欲しいものではなかった場合は、ワークフローを生成するボタンの下にある、「識別結果を切り替える」のボタンを何度かクリックしてください。
こちらも何度かクリックしていけば、自分の欲しいデータ形式になるはずです。
今回の場合は、特に問題ないので、一番最初に出た結果から、ワークフローを生成します。
ちなみに「ワークフロー」とは、オクトパスがデータを抽出する手順を目に見えるようにしたものです。
プログラミングなどをできなくても、この手順をいじくれば、カスタマイズすることができますが、基本的にはここを触る必要はありません。(SBI証券のデータを抽出するときには、ここを触る必要がありますが、今回は割愛します)
あと余談ですが、マネックス証券の銘柄スカウターのような、ログインしてからではないと使えないようなデーターベースからも抽出はできます。
ただし、オクトパス上にログインIDとパスワードを入れなければいけないので、セキュリティのところに一抹の不安があり、私はやらないようにしています。
今回の場合は、今表示されている画面から、さらにその画面の中にリンクされている別の画面を呼び出して、そこにあるPERや配当利回りのデータを取る必要があるので、以下の手順で作業進めていきます。
3. 不要な列を削除する(後でやってもOK)
項目にはズレが出ますが、最初は無視してください。
4.次のページに行きたいので、その手順をOctpurseに覚えさせます。
以下の図の通りです。
5.次のページに移りました。
まずは、「株価(現値)」を抽出しましょう。
正しく指定できると、下のフィールドに株価が表示されます。
6.同じ手順で、次は「目標株価」を抽出します。
同じく、正しく指定できると、下のフィールドに株価が表示されます。
この作業を繰り返します。
欲しい情報が全て指定し終わりました!
※もし、指定し間違えた場合は、以下の通り「選択解除」してください。
7.全部指定が完了したら「実行」をクリック!
※今回の場合、右のワークフローの「ページネーション」を内を見れば分かりますが、「ループアイテム」として、
上記2、5、6の手順を繰り返し、1ページ目が終わると、次のページを自動でクリックしてくれます。
これにより、1~4ページまでの全てのデータを自動で抽出してくれます。
8.「ローカル抽出」をクリック
9.自動で抽出が開始されます。
10.実行完了後は、「データをエクスポート」をクリック
11.好きなデータ形式を選んでください。
12.最後にExcelを整形すれば、完成です!
欲しいデータが、全部1行でまとまってます!
以上が基本的な操作です。
サイトによっては、微妙にワークフローの調整が必要
今回の「株予報」サイトは、非常に分かりやすくデータ抽出をできますが、サイトによっては、自動識別で「次のページ」設定ができないため、手動で調整したり、次のページボタンではなく「もっと見る」ボタンを設定したりするケースがあります。
「重複」表示のケース
データ抽出の段階で、サイトにより、「重複」と表示されるケースがあります。
「重複」とは同じデータを何度も取得している状態なので、その場合は、ワークフローの調整が必要です。
調整のやり方は、説明できないので、各自でワークフローの内の動作ブロック(「データを抽出」等)を動かして、試してください。重複の発生は「ループアイテム」の設定の問題だと推測できます。
1ページしか取得してくれないケース
SBI証券の決算スケジュールページで、ウェブスクレイピングをデフォルトでやると発生します。
以下の図のように、「次のページ」のブロックを、「ループアイテム」の枠内に入れると、次のページへ遷移してくれます。
もしくはウェブ上にある「次へ」をボタンに対して、「操作のヒント」の「単一要素をループクリックする」設定を行う必要があるケースもあります。
あと上図にある「操作のヒント」はとても大事です。
基本的には、このヒントにある選択肢を選べば大丈夫です。
どうしてもうまく自動でデータを抽出できない場合は、カスタマイズモードを利用する
例えば株探からデータを抽出したい時に広告が邪魔で一発で抜けないケースがあります。
その場合は「カスタマイズモード」を使用しましょう。
使い方としては、まずExcelで以下のような表を作成しておく必要があります。
B列には、株探でデータを抜きたい「ページのURL」、但し銘柄コードを抜いておきます。
※幸いにも株探の場合は、銘柄コードが一番右に付くタイプなので、URLを作りやすいです。
そしてC列に「データを抜きたい銘柄コード」
それらをCONCATENATE関数で合体させて出来上がったURLを値化して右の方に貼り、
それをコピーしてOctoparseに貼り付けします。
「保存」ボタンを押すと以下の画面に遷移します。ここでは「Webページの自動識別」は不要です。
このページ内にある欲しいデータをクリックして、テキスト抽出していきます。もし別のページに行きたい場合は、「リンクをクリック」で別ページに行き、そのデータを入手してください。
そして最後に「実行」しましょう。
あとは自動で、カスタマイズモードで貼り付けたURLの分だけループしてデータを抽出してくれます。
無料版ではタスクは10個まで保持できる
ダッシュボードをクリックするとタスクの一覧が確認できます。
定期的に行うタスクは、ここをクリックすればすぐに呼び出せます。
不要なタスクは、削除してください。
このような形で、自動でデータを抽出できるので、時間短縮、作業の手間短縮にもなり大変便利です!
ぜひ活用してみてください!
お願いごと
読んだ情報が参考になったら、ぜひとも以下をポチっと応援クリックしてください!^_^
良い記事を書く励みになります!
ディスカッション
コメント一覧
まだ、コメントがありません