#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();
Дайте мне знать, если это сработает.