Files
Mapo-IOB-WIN/IOB-WIN/IobWPS.cs
T
Samuele E. Locatelli 13a784b850 Appunti...
2019-04-24 15:27:42 +02:00

97 lines
3.1 KiB
C#

using HtmlAgilityPack;
using IOB_UT;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.NetworkInformation;
namespace IOB_WIN
{
/// <summary>
/// Generica classe per implementare WebPageScraping (scaricamento web pages anche js-based x recupero informazioni)
/// </summary>
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)
*
* -------------------------------------------------------------------------------- */
/// <summary>
/// Pagina web da scaricare
/// </summary>
protected string baseUri = "http://192.168.1.55";
/// <summary>
/// Array di configurazione degli oggetti da cercare x decodifica e recupero info
/// </summary>
protected Dictionary<string, string> dataLocatorLUT;
/// <summary>
/// Estende l'init della classe base...
/// </summary>
/// <param name="caller"></param>
/// <param name="adpConf"></param>
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();
}
/// <summary>
/// Test funzioni WebPageScraping
/// </summary>
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");
}
}
}
}