検索してその結果を調べるだけでなくテキストファイルに保存する方法について考えます。またまとめて複数のワードを検索する方法も考えます。

同時並行で処理をする場合、WebBrowserがひとつではうまくいかないかもしれません。そこでWebBrowserのインスタンスをフィールド変数にもつクラスを作成することにしました。

前回とほとんど変わりません。これまでに作成したメソッドをWebBrowserTempクラスのメソッドにしただけです。追加した機能としてはヒット件数も取得できるようにしています。また処理が終わったらGotSearchResultイベントを発生させることで、外部のクラスでも処理ができるようにしています。

そして調査したい検索ワードをRichTextBoxに入力して[開始]のボタンをクリックすると処理がはじまります。どれだけ処理が進んだかわかるようにプログレスバーをつけました。上は処理が開始されたもの、下は処理が終わったものです。

[開始]のボタンをクリックがクリックされると空白行がないかチェックして、あとは一行ずつ検索しています。検索するときはWebBrowserTempオブジェクトを生成して処理がおわったときに発生するGotSearchResultイベントを処理できるようにしています。そしてSearchメソッドで実際に検索の処理をおこなっています。

またサーバーに負荷をかけないようにリクエストは10秒おきにしています。

GotSearchResultイベントが発生すると検索ワードと順位、虫眼鏡ワードが送られてくるので、これをテキストファイルとして保存しています。