9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-04-21

他の投稿はこちら

タイトルを読んで「何言ってんだコイツ」と思われた方も居るかもしれません。
要するに、ブラウザからブラウザ(というか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でもヘッドレスブラウザでも、自由に実装して頂けます。

サンプル&ソース

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

9
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?