2011-10-25 5 views
1

現在、私はC#4.0とhtmlagilitypack 1.4.0を使用してWebページをダウンロードし、情報を抽出しています。これらの2つのWebページ読み込み方法の違いやパフォーマンスの違いはありますか? - C# - html agility pack

 HtmlWeb hw = new HtmlWeb(); 
     HtmlDocument myDoc = hw.Load("URL"); 

をhtmlagilitypack使用することにより、以下の方法でウェブページをダウンロードすることが可能である。しかし、あなたはこの方法でエンコーディングを設定することができません。したがって、エンコーディングを設定できるようにするには、以下のメソッドが動作しています。

 HtmlDocument myDoc=new HtmlDocument();   
     StreamReader reader = new StreamReader(WebRequest.Create(textBox1.Text).GetResponse().GetResponseStream(), Encoding.GetEncoding("iso-8859-9")); //put your encoding    
     myDoc.Load(reader); 

しかし、これらの2つの方法には違いがあり、パフォーマンスに違いがあるのだろうか。これらの2つの方法の利点と欠点は何でしょうか。ありがとうございました。

C#4.0、WPF、htmlagilitpack、クロールページ

答えて

2

二つの方法の違いはありません。 HtmlWeb.Load(string url)は内部でHtmlDocument.Load(TextReader reader)を以下のHtmlWeb.Load(文字列url)コールスタックとして呼び出します。これは.NET Reflectorを使用して表示します。

HtmlWeb.Load(string url) 
----> HtmlDocument.Load(string url, Encoding encoding(=this.OverrideEncoding)) 
----> HtmlDocument.Load(TextReader reader) 

これは、エンコーディングを設定するHtmlWeb.OverrideEncodingプロパティを使用することができますし、エンコーディングを設定し、ちょうどHtmlWeb.Load(文字列のURL)を呼び出さない場合、HtmlWeb.Load(string url)HtmlDocument.DetectEncodingAndLoad(string path, bool detectEncoding(=true))を呼び出します伝えます。

+0

答えに感謝します。 – MonsterMMORPG

関連する問題