【Puppeteer実用講座】Wine/Conoha VPS(Linux)にKabuステーションが入らなくなったのでPuppeteerで操作を代替する
※ 当ページには【広告/PR】を含む場合があります。
2025/05/06
【VPS・Linuxサーバー入門】Conoha VPSのLinuxインスタンスに最新版のWine(Wine-HQ)を設定する
個人的な株式資産の管理で、VPS上の自作CUIアプリケーションによってセミオートマチックな処理を常駐させていましたが、ちょっと前にKabuステーションがWineで動かなくなって割と放置しておりました。そこからKabuステーションの開発状況の推移をしばらく様子の状態が継続していました。現状、Wineでの動作に成功されたような報告もなく、この状況がなかなか変わらないので、ともかく別の方法で株式資産管理を行うことを模索する必要がありそうです(泣)。とはいえ、KabuステーションAPIは個人向けの国内株式取引においては”唯一”の公開APIサービスですので、Linuxユーザーには移行先の候補が無いのが頭の痛い点です。この手の話で、元はKabuステーションAPIの登場以前、Javascriptからは、Puppeteerに代表されるヘッドレスブラウザ操作のスクリプトで、ウェブサイトをスクレイピングする手法が広くやられてきました。今更先祖返りと揶揄されそうな今更なテクニックで、ベンダーから提供される本物のAPIとはならないものの、背に腹は変えられないため、「Puppeteer」
を使った証券口座サイトのスクレイピングによる口座管理を個人的に大復活させてみたときの開発日記です。
ConoHa VPS 新しいKabuステーションをWineで動かすときの問題点
本題に入る前に、現在のKabuステーションがWine上で動かせない状況を少し整理しておきます。もしかしたら、そのうち問題が解決する可能性もないとも言えませんので...(もちろんVPSでもWindows OSベースのインスタンスを使えばこんな悩みは一切無用です)以下の記事でも触れていましたが、![合同会社タコスキングダム|蛸壺の技術ブログ]()
auカブコム証券のkabuステーション®をAutoItでWindows上で自動起動してみるWindows用ソフトウェアのkabuステーション®をAutoItで自動ログインするためのスクリプトを作成します。
Kabuステーションは長らく、「ClickOne形式(.appref-ms)」
で公開されていました。アプリケーションの仕様が大きく変更になったのは2024年の後半あたりで、Microsoft Edge WebView2 Runtime
ベースに改良されたことで、Windows10/11への対応が強化されたことにあります。参考|お知らせ】kabuステーション®のバージョンアップもちろんこれはWindowsユーザーには好ましい変更点となった反面、Wineで無理クソ動かしていたLinuxユーザーには非常に高いハードルのようになってしまいました。試しに、wine-10のstagingで現行のKabuステーションのインストーラーであるsetup.exe
を馬鹿正直に動かしてみます。アカウントにログインして、[kabuステーション起動]
の項目から、ダウンロード用のダイアログを開きます。ダウンロードをクリックし、setup.exe
というインストーラーを保存します。.ssh/config
内で設定した[SSHの送り先]を利用し、scpコマンドでダウンロードしたファイルを送ります。例えばmy-conoha
というユーザーで登録していたとすると、ここからはConoha VPS側のGUIでリモートデスクトップから操作します。おもむろにこのインストーラーをwineで立ち上げてみましょう。いくつか、エラーが出ているようなので、1つ1つ足りない設定を潰していきます。まず、致命的ではないものの、winediag:SECUR32_initNTLMSP
というエラーが発生しています。これはwinbindをインストールし直せばよいようです。もう一つrichedit:ReadStyleSheet
は、winetricksでDLLからricheditを追加できます。再度setup.exeをwineしてみますと、結果...、画面が真っ黒になってブラックスクリーン状態になってしまい、正常には動作してくれません。一応、webview2
のライブラリが足りてない...のが原因であれば、公式からインストーラーをダウンロードし、個別にwineへインストールしてみましたが、この方法だと問題の状況は変わらず。ネットで似たような記事を探すと、wine9あたりでwebview2(x86)がどうにか動くけれど、x64ではクラッシュするなどの報告が少々ありましたが、wine10では十分な見地も無いようです。この辺はもう少し待ったら状況も変わってくるかもしれませんが、これ以上WineでKabuステーションを操作する試みで深入りするはやめておきます。
ConoHa VPS PuppeteerでSBI証券サイト(バックアップサイト)のオペレーションを自作
kabuステーションAPIがLinuxから使えなくなったような状況ですので、当初はウェブサイトの中でも軽量に操作可能な「SBI証券のバックアップサイト」を候補に考えておりました。ところが、昨今、個人の証券口座への不正侵入や大規模なフィッシング詐欺が大きな社会問題となっていることもあり、なんともタイムリーにSBI証券口座のバックアップサイトが閉鎖されてしまうようです!2025年5月で、サービス終了してしまうとのことで、スクレイピングのソースコードの準備を進めていただけにとてもショックです...もはや意味をなさないですが、記念にConoha VPSからSBIバックアップサイトへログイン後のトップページをキャプチャした画像をおいておきます。さて、大本命であったSBI証券口座のバックアップサイトが候補から消えたので、今後はPupperteerでログインしやすそうなサイトを探さないといけなくなりました。証券口座の選定はまた後日別の記事でご報告するとして、今回はVPSのNodejs動作環境の準備手順を説明するに話をとどめます。Debianインスタンスで最新のNodejsをインストール
VPS上のLinuxOSでPupperteerを使うためには、当然Nodejs環境が必要になります。Debianのパッケージ安定版のNodejsをインストールするのはとても簡単です。 ただしそのままだと、Debianのパッケージ安定版は最新のNodejsとのバージョンの隔たりが結構あります。見てのように、v18は現時点から考えると、ESModuleで動かしにくいため、Pupperteerをツール化して動かすにしてはちょっと古くて使いにくいです。そこで、Nodeのバージョン管理ツールである「n」
を利用してアップグレードを行います。ひとまずnをグローバルインストールします。次にnからNodejsを最新の安定版にアップグレードします。あとは、最初にパッケージインストールした削除&クリーンにします。これで一度Debianインスタンスを再起動し、バージョンを再度確認してみると、 と、現状でリリース安定版で最新のv22系になっています。Chrome for Testをインストール
Puppeteerは、v19以前ではChromium、そしてv20から『Chrome for Test』の利用が基本となります。参考|Supported browsersサポートされるブラウザに大きく依存していますので、Puppeteer v19以前であれば、対応のChromiumを実行環境へインストールする必要がありました。インストール先の実行パス(/usr/bin/chromium)はPupperteerの指定パラメータで利用します。v20以降では、Puppeteerユーザーがブラウザを個別にインストールする必要がなくなり、Node側の操作で完結できるようになっています。キャッシュしたブラウザのバイナリは/<ユーザー名>/.cache/puppeteer/
以下に保存されます。ログイン機能とCLI機能の導入
ソースコードの実装も具体的に説明していきたかったのですが、ブログ記事のとっかかりとして当初考えていたSBI証券口座バックアップサイトを使った実装は意味がなくなってしまいました。ここでは実装方針だけ軽く紹介して、具体的な話は次回以降に回します。まずはログイン機能がないと話になりません。以下の記事では、Dockerからの操作にはなりますが、某M証券のページを操作したときのものです。![合同会社タコスキングダム|蛸壺の技術ブログ]()
【puppeteer実用講座】Alpine Dockerコンテナからpuppeteerで動的サイトのスクレイピングを試してみるpuppeteerを利用したスクレイピング操作するための開発環境を整える
なお、M証券さんのサイトはGUIの作りに癖が強い印象ですので、今回の話からは候補にしづらくはあります。また、Pupperteerはnodeコマンドからの起動になるため、リッチなGUI画面を自作できれば別ですが、基本はコンソールからのヘッドレス操作になります。そこでCLIツール仕立てにするのが一番お手軽な実装になるのですが、ここでは、「Shelljs」と「argparse」を利用します。これらのライブラリのインストールと簡単な使い方に関しては、以下の記事内で行いましたので、そちらを参考にしてください。![合同会社タコスキングダム|蛸壺の技術ブログ]()
【Pupperteer実用講座】PuppeteerでAmazonアソシエイトのURL生成puppeteerでAmazonアソシエイトの簡潔なURL・関連画像・説明文を同時にローカルに保存してくれるだけのスクリプトを作成
ConoHa VPS まとめ
タイムリーにSBI証券口座のバックアップサイトのサービス終了がアナウンスされてしまい、割と話の出鼻をくじかれてしましました。残念ではありますが、近年のサイバー犯罪はかなり巧妙化しているので、各証券会社もセキュリティの強化が急務になっているため致し方ありません。むしろPupperteerでもログインしにくくなる可能性が多分にあり、そちらのほうも気になる点です。次回以降、証券サイトの選定も含めて、自動操作を実装していこうかと思います。