会社行きたくなかったんです。

自由になりたくて会社辞めました

IT Visual Studio プログラミング

VB.netで Html Agility Packを使ってみました。

更新日:

今まで、VB.netでスクレイピングをするときは、WebRequestを使っていました。
WebRequesでHTMLを取得して、自分で解析するプログラムを書いて…
.NETには、HTMLパーサーが組み込まれていないので、そんなことをしていました。

スポンサーリンク

.NET用のHTMLパーサーといえば、「Html Agility Pack」だという記述を多数見つけたので、使ってみることにしました。

まずは、「HtmlAgilityPackTest」というWindowsフォームアプリケーションを作成

ツール>Nugetパッケージマネージャー>ソリューションのNugetパッケージの管理を開きます。
参照を選択し、「Html Agility Pack」と入力すると、次のように表示されます。

Html Agility Packを選択し、プロジェクト名にチェックを入れて、インストールをクリックします。

参照にHtmlAgilityPackが追加されました。

試しに、Google Currency Converterをスクレイピングして、USDのレートを取得してみます。

URLは、「https://www.google.com/finance/converter?a=1&from=usd&to=JPY」です。
アクセスすると次の画像のように表示されます。

Html Agility Pack を使って「110.5740 JPY」を取得してみます。

btn為替レートテストとRichTextBox1をフォームに配置しました。

コードを書いてみました。

WebClientを使う方法

HttpWebRequestを使う方法

btn為替レートテストをクリックしたら、RichTextBox1に「110.5390 JPY」と表示されました。
(コードを書いている間に、レートが更新されてしまいました。)

Html Agility Pack を使ったら、かなり楽になりました。

ただ、WebClientやHttpWebRequestでアクセスすると、ブラウザだと表示できるのに404エラーが発生したり、

要求は中止されました: SSL/TLS のセキュリティで保護されているチャネルを作成できませんでした

というエラーが発生したりして、スクレイピングできないページが多数存在します。

その辺は、Selenium WebDriverを使えば、うまくいくかもしれないので、今度試してみます。

-IT, Visual Studio, プログラミング

Copyright© 自由になりたくて会社辞めました , 2018 AllRights Reserved Powered by AFFINGER4.