Будет ли какая-либо разница или разница в производительности между этими 2 методами загрузки веб-страниц — c # — пакет гибкости html

#c# #wpf #web-crawler #html-agility-pack #dom

#c# #wpf #веб-сканер #html-agility-pack #dom

Вопрос:

В настоящее время я использую C # 4.0 и htmlagilitypack 1.4.0 для загрузки веб-страниц и извлечения информации.

Можно загружать веб-страницы с помощью приведенного ниже способа, используя htmlagilitypack

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

Но вы не можете установить кодировку таким образом. Итак, чтобы иметь возможность установить кодировку, приведенный ниже метод работает.

         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, сканирование страницы

Ответ №1:

Между этими двумя способами нет разницы. HtmlWeb.Load(string url) внутренние вызовы HtmlDocument.Load(TextReader reader) как следующий стек вызовов HtmlWeb.Load(string url), для просмотра которого я использовал .NET Reflector.

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

Это говорит о том, что вы можете использовать HtmlWeb.Переопределите свойство encoding для установки кодировки, и если вы не установите кодировку и просто вызовете HtmlWeb.Load(string url), HtmlWeb.Load(string url) вызовет HtmlDocument.DetectEncodingAndLoad(string path, bool detectEncoding(=true)) .