Будет ли какая-либо разница или разница в производительности между этими двумя методами загрузки веб-страниц - c # - html agility pack - PullRequest
1 голос
/ 26 октября 2011

В настоящее время я использую 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 способами.Спасибо.

C # 4.0, wpf, htmlagilitpack, страница для сканирования

1 Ответ

2 голосов
/ 26 октября 2011

Нет разницы между этими двумя способами.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.OverrideEncoding для установкикодировка, и если вы не установите кодировку и просто вызовете HtmlWeb.Load (строка url), HtmlWeb.Load(string url) вызовет HtmlDocument.DetectEncodingAndLoad(string path, bool detectEncoding(=true)).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...