C#でWebスクレイピングをやってみた

本文上広告1



動機

少し前から興味があったのと、依頼を受けたのでC#でWebスクレイピングを試してみました。最近は、色々なツールがあるのでやりやすくなってます。

ツールと成果物

今回はNugetで AngleSharpと、Selenium(Web driver とChrome driver)を取得してやってみました。

Nugetでインストール

初めてなので、 Seleniumで ChromeにWeb表示させて、AngleSharpを解析させましたが、慣れたらAngleSharpだけでも行けそうです。

上記のようにした理由としては、

① IDとPWDを入力させるのにSeleniumの方が簡単そうだったのと、動いてっぞ!という感じが出てよいのでこうしました。(実際に目でみて確認できる。)

②日本語資料として、Selenium > AngleSharpだったので、ログインとかのための資料が分かりにくかった。(初めAnglesharpから始めたのですが、そこがわかりにくかったので、Selenium導入。今ならこことかをじっくり見たらわかる気がします。)

出来上がりはこんな感じ。開始を押すとchromdriver.exe(か?)のコマンドラインが開き、Chromeを起動、IDとパスワード入れて、Webページのデータを収集していきます。

実際に作成したソフトの外観

ちなみに、今まで.exe.configをソフトに同梱させたことはなかったのですが、何か情報が.exe.configにも書かれている模様。追求はしてませんが、これで動くようになったので次回以降困ることがあったら、ここら辺を追求していきたいと思います。

スクレイピングについて

スクレイピング自体は情報解析のためであり(*1)、スクレイピング対象がAPI廃止になったサービスということもあり、アクセス数はなるべく少なくなる様に心掛けたり(*2)が必要かと思います。RPAソフトとかでもスクレイピングできるよって言っているけど気を付けたいところではあります。プロキシサーバーとか抜け道はあるかと思いますが。。費用が追加で必要になるので。

(*1) 著作権とか、(*2)動産侵入とかです。

ツールのライセンス

AngleSharp : MIT

Selenium Web driver: APACHE LICENSE, VERSION 2.0

→ 『Apache License 2.0とは?』の解説が分かりやすいですね。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする