😀

ブラウザでブラウザを操作してスクレイピングを行う

2023/01/06に公開

他の投稿はこちら

タイトルを読んで「何言ってんだコイツ」と思われた方も居るかもしれません。
要するに、ブラウザからブラウザ(というかWebBrowserコントロール)を立ち上げて、スクレイピングをする方法を紹介します。

概要

ブラウザ_03.png

  • WebBrowserコントロールを組み込んだネイティブアプリを作成する
  • ネイティブアプリ上でWebSocketサーバーを立ち上げる
  • ブラウザからネイティブアプリのWebSocketサーバーにローカルホスト接続する
  • ネイティブアプリでスクレイピングを行い、WebSocketサーバーを通して、情報をブラウザに送信する。

構成は、前回「ブラウザで(WebUSBもActiveXも使わずに)FeliCaリーダーを読み込む」とほぼ同じで
カードリーダー部分をWebBrowserコントロールに挿げ替えただけです。

デモ

ezgif.com-video-to-gif.gif

ブラウザで入力したキーワードを元に、ググった結果を表示しています。

まとめ

正直、ブラウザからブラウザを動かして何が嬉しいの?と思われるかもしれません。
確かに今回のように、単純な用途でスクレイピングをしたいだけなら、curlなどを使用して取得した文字列を解析すれば十分ですが

  • APIが用意されていないBtoBサイトと自社サイトを連携させたい
  • サーバー側の負荷軽減のため、クライアント側でスクレイピングさせたい
  • WebベースでRPAをやりたい

といった要求がある場合、今回紹介した技術が役に立つと思います。

また、今回はC#&WebBrowserコントロールを使用しましたが
実際はSeleniumでもヘッドレスブラウザでも、自由に実装して頂けます。

サンプル&ソース

サンプル&ソースはこちら

Discussion