現在、C#4.0で書かれたスクレーパーを作成しています。私は、.NETの組み込みのWebClientとRegEx機能を含む、さまざまなツールを使用しています。私のスクレーパーの一部については、HtmlAgilityPackを使ってHTML文書を解析しています。私が望むようにすべてを動かし、コードのクリーンアップを行った。HtmlEntity.DeEntitize()メソッドを使用したKeyNotFoundException
HtmlEntity.DeEntitize()
メソッドを使用してHTMLをクリーンアップしています。私はいくつかのテストを行い、その方法は素晴らしいと思われました。しかし私のコードでメソッドを実装すると、私はKeyNotFoundException
を得続けました。それ以上の詳細はないので、私はかなり失われています。私のコードは次のようになります:
WebClient client = new WebClient();
string html = HtmlEntity.DeEntitize(client.DownloadString(path));
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
ダウンロードされたHTMLはUTF-8でエンコードされています。 KeyNotFound
例外を回避するにはどうすればよいですか?
私は 'HttpUtility.HtmlDecode」でこれらのケースを試してみましたが、それが唯一の『â』 – Setsu
@Setsuの最後のケースを取り扱っ - 私は各文字をしようとしませんでした。私の入力テキスト(ルーマニア語のみ)に基づいて、私は問題のある文字のセットを知り、そのすべてを関数内に入れます。しかし、必要に応じて適応する必要があります。これはまともな解決策ではありませんが、後でHtmlAgillityPackがその魔法を実行できるようにします。 – Alexei
おそらく私は間違っていますが、私はあなたがそのコメントで意味していたことを間違えたと思います。 'HttpUtility.HtmlDecode'は' System.Web'名前空間にあり、HtmlAgilityPackの代わりにフレームワークによって提供されます。私はそれがそれらの事件を処理したかどうかを知りたいだけでした。 – Setsu