Testato nuovo skraping

This commit is contained in:
CSiCoAlm committed 2026-01-02 17:53:38 +01:00
1 parent 89ca167bcc
commit f8685ad65d
3 files changed
+124 -108

No files matched your search

+93 -93
View File
@@ -493,99 +493,99 @@ namespace A69WD.Net {
{
if (Status == eLinkState.ToAnalize) {
List<string> tmpLk = new List<string>();
//
// #region Estraggo gli url ad indici:
// {
// /*
// * Gli url delle pagine di indice sono del tipo:
// *
// * <div class="pagination">
// * <a href="/archivio/Tutto">⇤</a>
// * <a rel="prev" href="/archivio/Tutto/0">⇠</a>
// * <a href="/archivio/Tutto/0">1</a>
// * <a class="current">2</a>
// * <a href="/archivio/Tutto/2">3</a>
// * <a href="/archivio/Tutto/3">4</a>
// * <a href="/archivio/Tutto/4">5</a>
// * <a href="/archivio/Tutto/5">6</a>
// * <a href="/archivio/Tutto/6">7</a>
// * <a href="/archivio/Tutto/7">8</a>
// * <a href="/archivio/Tutto/8">9</a>
// * <a href="/archivio/Tutto/9">10</a>
// * <a href="/archivio/Tutto/10">11</a>
// * <a class="plain">...</a>
// * <a rel="next" href="/archivio/Tutto/2">⇢</a>
// * <a href="/archivio/Tutto/3146">⇥</a>
// * </div>
// *
// */
// try {
// // Estraggo i link alle altre pagine:
// var tnodes = tdoc.DocumentNode.SelectNodes("//div[@class='pagination']//a[@href]");
// if (tnodes != null) {
// foreach (var link in tnodes) {
// var href = link.GetAttributeValue("href", "");
// if (!string.IsNullOrEmpty(href) && href.StartsWith("/archivio/Tutto/"))
// tmpLk.Add(href); //tmpLk.Add(cLink_eRac.PageBase + href);
// }
// }
// // Rimuove duplicati e ordina alfabeticamente
// tmpLk = tmpLk
// .OrderBy(s => s) // ordina alfabeticamente
// .Distinct() // elimina duplicati
// .ToList();
// // Inserisco i link trovati
// foreach (string ilk in tmpLk) {
// string url = cLink_eRac.PageBase + ilk;
// int offset = int.Parse(ilk.Replace("/archivio/Tutto/", ""));
// string name = $"_eRac_Idx_{offset.ToString("0000")}.html";
// newlinks.Add(new cLink_eRac(url, name));
// }
// } catch (Exception ex) {
// Logger.Error("Errore analisi Idx link dal " + FileName + " - " + ex.Message);
// cTools.SaveToFile(thtml, Cfg.Settings.PathSrcErrOnExtract, FileName);
// }
// }
// #endregion
//
// #region Estraggo gli url a racconti:
// {
// /*
// *
// * I link ai racconti sono dei pulsanti così formati:
// * <a class="rac" href="{URL}"></a>
// *
// */
// try {
// // Estraggo i link ai racconti:
// tmpLk = new List<string>();
// // Estraggo i link alle altre pagine:
// var tnodes = tdoc.DocumentNode.SelectNodes("//a[@class='rac']");
// if (tnodes != null) {
// foreach (var link in tnodes) {
// var href = link.GetAttributeValue("href", "");
// if (!string.IsNullOrEmpty(href) && href.StartsWith("/racconto/"))
// tmpLk.Add(href); //tmpLk.Add(cLink_eRac.PageBase + href);
// }
// }
// // Rimuove duplicati e ordina alfabeticamente
// tmpLk = tmpLk
// .OrderBy(s => s) // ordina alfabeticamente
// .Distinct() // elimina duplicati
// .ToList();
// // Inserisco i link trovati
// foreach (string ilk in tmpLk) {
// string url = cLink_eRac.PageBase + ilk;
// string name = ilk.Replace("/racconto/", "eRac_").Replace(@"/", "_") + ".html";
// newlinks.Add(new cLink_eRac(url, name));
// }
// } catch (Exception ex) {
// Logger.Error("Errore analisi Idx link dal " + FileName + " - " + ex.Message);
// cTools.SaveToFile(thtml, Cfg.Settings.PathSrcErrOnExtract, FileName);
// }
// }
// #endregion
//
#region Estraggo gli url ad indici:
{
/*
* Gli url delle pagine di indice sono del tipo:
*
* <div class="pagination">
* <a href="/archivio/Tutto">⇤</a>
* <a rel="prev" href="/archivio/Tutto/0">⇠</a>
* <a href="/archivio/Tutto/0">1</a>
* <a class="current">2</a>
* <a href="/archivio/Tutto/2">3</a>
* <a href="/archivio/Tutto/3">4</a>
* <a href="/archivio/Tutto/4">5</a>
* <a href="/archivio/Tutto/5">6</a>
* <a href="/archivio/Tutto/6">7</a>
* <a href="/archivio/Tutto/7">8</a>
* <a href="/archivio/Tutto/8">9</a>
* <a href="/archivio/Tutto/9">10</a>
* <a href="/archivio/Tutto/10">11</a>
* <a class="plain">...</a>
* <a rel="next" href="/archivio/Tutto/2">⇢</a>
* <a href="/archivio/Tutto/3146">⇥</a>
* </div>
*
*/
try {
// Estraggo i link alle altre pagine:
var tnodes = tdoc.DocumentNode.SelectNodes("//div[@class='pagination']//a[@href]");
if (tnodes != null) {
foreach (var link in tnodes) {
var href = link.GetAttributeValue("href", "");
if (!string.IsNullOrEmpty(href) && href.StartsWith("/archivio/Tutto/"))
tmpLk.Add(href); //tmpLk.Add(cLink_eRac.PageBase + href);
}
}
// Rimuove duplicati e ordina alfabeticamente
tmpLk = tmpLk
.OrderBy(s => s) // ordina alfabeticamente
.Distinct() // elimina duplicati
.ToList();
// Inserisco i link trovati
foreach (string ilk in tmpLk) {
string url = cLink_eRac.PageBase + ilk;
int offset = int.Parse(ilk.Replace("/archivio/Tutto/", ""));
string name = $"_eRac_Idx_{offset.ToString("0000")}.html";
newlinks.Add(new cLink_eRac(url, name));
}
} catch (Exception ex) {
Logger.Error("Errore analisi Idx link dal " + FileName + " - " + ex.Message);
cTools.SaveToFile(thtml, Cfg.Settings.PathSrcErrOnExtract, FileName);
}
}
#endregion
#region Estraggo gli url a racconti:
{
/*
*
* I link ai racconti sono dei pulsanti così formati:
* <a class="rac" href="{URL}"></a>
*
*/
try {
// Estraggo i link ai racconti:
tmpLk = new List<string>();
// Estraggo i link alle altre pagine:
var tnodes = tdoc.DocumentNode.SelectNodes("//a[@class='rac']");
if (tnodes != null) {
foreach (var link in tnodes) {
var href = link.GetAttributeValue("href", "");
if (!string.IsNullOrEmpty(href) && href.StartsWith("/racconto/"))
tmpLk.Add(href); //tmpLk.Add(cLink_eRac.PageBase + href);
}
}
// Rimuove duplicati e ordina alfabeticamente
tmpLk = tmpLk
.OrderBy(s => s) // ordina alfabeticamente
.Distinct() // elimina duplicati
.ToList();
// Inserisco i link trovati
foreach (string ilk in tmpLk) {
string url = cLink_eRac.PageBase + ilk;
string name = ilk.Replace("/racconto/", "eRac_").Replace(@"/", "_") + ".html";
newlinks.Add(new cLink_eRac(url, name));
}
} catch (Exception ex) {
Logger.Error("Errore analisi Idx link dal " + FileName + " - " + ex.Message);
cTools.SaveToFile(thtml, Cfg.Settings.PathSrcErrOnExtract, FileName);
}
}
#endregion
#region Estraggo il racconto dal file e lo inserisco nel DB
if (FileName.StartsWith("eRac_")) {
// Link ad un racconto
+18 -2
View File
@@ -32,8 +32,24 @@ using System.Runtime.InteropServices;
// È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build
// usando l'asterisco '*' come illustrato di seguito:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.5.2.0")]
[assembly: AssemblyFileVersion("0.5.2.0")]
[assembly: AssemblyVersion("0.5.3.0")]
[assembly: AssemblyFileVersion("0.5.3.0")]
/*
*
* Vrs 0.5.3.0
*
* Compilata da CSiCoAlm il 2026/01/02
* Inserito nello skraping anche la sorgente eRac
*
*
* ToDo:
* - Aggiungere gestione parallela della FIFO secondo vecchi modello per aumentare il feedback alla UI
* - Inserire anche l'estrazione dei racconti
* - Inserire funzionalità avanzate sul lettore
*
*/
/*
+13 -13
View File
@@ -61,9 +61,9 @@ namespace A69WD.UI {
mImpStart.Enabled = true;
mImpStop.Enabled = false;
// // Update UI
// pnlTop.Enabled = false;
// pnlTop.Visible = false;
// Update UI
pnlTop.Enabled = false;
pnlTop.Visible = false;
}
@@ -749,17 +749,17 @@ namespace A69WD.UI {
// Preparo il servizio
serviceCrawler = new Service_Crawler(sb);
// // Inserisco i link iniziali nella coda
// if (!cLink_eRac.InsertStartLink(serviceCrawler)) {
// Logger.Warning("eRac - Insert start link Fault");
// sbStatusLabel.Text = "eRac fault.";
// return;
// }
// Inserisco i link iniziali nella coda
if (!cLink_eRac.InsertStartLink(serviceCrawler)) {
Logger.Warning("eRac - Insert start link Fault");
sbStatusLabel.Text = "eRac fault.";
return;
}
// Inserisco link di un racconto:
string url = "https://www.eroticiracconti.it/racconto/105286-nicole-gis-il-culto-della-terza-notte"; // "https://www.eroticiracconti.it/racconto/112763-elara-capitolo-2-il-cambiamento";
string name = "eRac_112763-elara-capitolo-2-il-cambiamento.html";
serviceCrawler.EnqueueUrl(new cLink_eRac(url, name));
//// Inserisco link di un racconto:
//string url = "https://www.eroticiracconti.it/racconto/105286-nicole-gis-il-culto-della-terza-notte"; // "https://www.eroticiracconti.it/racconto/112763-elara-capitolo-2-il-cambiamento";
//string name = "eRac_112763-elara-capitolo-2-il-cambiamento.html";
//serviceCrawler.EnqueueUrl(new cLink_eRac(url, name));
// avvio il servizio
serviceCrawler.StartWorker();