97 lines
3.1 KiB
C#
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");
|
|
}
|
|
}
|
|
}
|
|
}
|