using HtmlAgilityPack;
using IOB_UT;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.NetworkInformation;
namespace IOB_WIN
{
///
/// Generica classe per implementare WebPageScraping (scaricamento web pages anche js-based x recupero informazioni)
///
public class IobWPS : IobGeneric
{
/* --------------------------------------------------------------------------------
* Controlli dotati di GENERICA pagina WEB in cui cercare e recuperare informazioni
*
* - il file di conf deve contenere l'URL di base
* - il file di conf deve contenere COSA cercare (es il "contenitore" del dato da estrarre)
*
* -------------------------------------------------------------------------------- */
///
/// Pagina web da scaricare
///
protected string baseUri = "http://192.168.1.55";
///
/// Array di configurazione degli oggetti da cercare x decodifica e recupero info
///
protected Dictionary dataLocatorLUT;
///
/// Estende l'init della classe base...
///
///
///
public IobWPS(AdapterForm caller, IobConfiguration IOBConf) : base(caller, IOBConf)
{
baseUri = $"http://{IOBConf.cncIpAddr}";
#if false
// gestione invio ritardato contapezzi
pzCountDelay = utils.CRI("pzCountDelay");
lastPzCountSend = DateTime.Now;
lastWarnODL = DateTime.Now;
// init connessione
setConnection();
#endif
// test completo funzionalità, da TOGLIERE in prod...
wpsFullTest();
}
///
/// Test funzioni WebPageScraping
///
private void wpsFullTest()
{
// faccio un try-catch di test vari...
try
{
// altra prova da fare... https://html-agility-pack.net/knowledge-base/23033578/how-do-i-screen-scrap-html-page-generated-by-javascript
#if false
webBrowser1.ScriptErrorsSuppressed = true;
webBrowser1.Navigate(url);
waitTillLoad(this.webBrowser1);
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
var documentAsIHtmlDocument3 = (mshtml.IHTMLDocument3)webBrowser1.Document.DomDocument;
StringReader sr = new StringReader(documentAsIHtmlDocument3.documentElement.outerHTML);
doc.Load(sr);
#endif
// faccio download preliminare pagina NON LEGGE
var web = new HtmlWeb();
var htmlDoc = web.Load(baseUri);
// salvo la pagina completa
lgInfo("--------------------------------------");
lgInfo("Curr ParsedText");
lgInfo("--------------------------------------");
lgInfo(htmlDoc.ParsedText);
lgInfo("");
lgInfo("--------------------------------------");
lgInfo("FULL TEXT");
lgInfo("--------------------------------------");
lgInfo(htmlDoc.Text);
lgInfo("--------------------------------------");
}
catch (Exception exc)
{
lgError(exc, "Eccezione durante wpsFullTest");
}
}
}
}