Загрузка элементов управления веб-браузером .NET

#c# #.net #vb.net #webbrowser-control

#c# #.net #vb.net #веб-браузер-контроль

Вопрос:

Как я могу захватить загруженные файлы, которые автоматически загружает Webbrowser (такие как .html, png и т.д.)

Например, если веб-сайт загружает HTML-файл каждые 30 секунд с помощью javascript, как я могу захватить этот HTML-файл с помощью управления веб-браузером?

Ответ №1:

Мой подход будет

Шаг 1 Извлеките содержимое элемента script (переменная, у которой есть путь к файлу html)

 //using HtmlAgilityPack
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);
//Considering first script tag (you need to check your decentands)
var script = doc.DocumentNode.Descendants()
                             .Where(n => n.Name == "script")
                             .First().InnerText; 

// Return the data of the spect and stringify it into a proper JSON object
var engine = new Jurassic.ScriptEngine();
var result = engine.Evaluate("(function() { "   script   " return spects; })()");
var json = JSONObject.Stringify(engine, result);

Console.WriteLine(json);
Console.ReadKey();
  

Шаг 2: Откройте HTML-страницу в другом элементе управления веб-браузером или в том же элементе управления браузером

 WebBrowser wb2 = new WebBrowser();
wb2.AllowNavigation = true;
wb2.Navigate(jsVariableAsString);
  

Шаг 3: Сохраните страницу веб-браузера

 var html = wb2.DocumentText.ToString();
  

или wb2.ShowSaveAsDialog();

Дайте мне знать, если это сработает.