2016-10-22 90 views
-1

我怎样才能捕捉到下载的文件的Webbrowser自动下载(如html的,PNG等).NET WebBrowser控件捕捉下载

例如,如果一个网站通过JavaScript下载一个html文件,每30秒,我怎样才能使用网页浏览器控制来捕获这个html?

回答

0

我的做法会

第1步抓住脚本元素的内容(有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:保存Web浏览器的页面

var html = wb2.DocumentText.ToString(); 

或wb2.ShowSaveAsDialog();

让我知道它是否有效。