Screenshot automatici

ZioPowerade

Nuovo Utente
Salve gente,
spero che il titolo "accattivante" sia riuscito già a spiegare, in parte, la mia richiesta.

Sostanzialmente vorrei sapere se c'è un modo per pianificare screenshot di una o più pagine web, con criteri di ricerca fissi o variabili, e di trasportare i dati numerici su file excel così da creare un database

Faccio l'esempio di booking.com: ricerco un soggiorno per il giorno X, hotel 4 stelle, centro città, 1 notte, screenshotto la prima pagina e riporto i risultati su un foglio excel.

Pensate sia possibile?
Mi servirebbe un bot, giusto?

Grazie e resto in attesa di vostre.
 

LucaBORIS

Utente Attivo
817
149
Hardware Utente
Eh si è un pò complicato, ma lo screen attenzione non può inserirti i dati su excell, semplicemente esso è una foto e viene letta come tale se dentro ci sono dati non vengono letti.
 

Robertob89

Moderatore
Staff Forum
4,136
2,284
Hardware Utente
CPU
Ryzen 5 3600 @ 4.2ghz 1.35v
Dissipatore
Custom Loop: wb cpu e gpu EK+HL gts 360/240
Scheda Madre
Asus Prime X470 Pro
Hard Disk
Samsung 960 Evo + Samsung 850 Evo
RAM
16 gb G skill Trident 3200mhz CL16
Scheda Video
Evga 1080TI Sc Black Gaming OC
Monitor
Acer Predator 27" 144hz 1440p IPS
Alimentatore
Evga 650W SuperNova G2
Case
Cooler Master H500M
Sistema Operativo
Win 10 Pro 64 bit
In realtà potrebbe leggere i dati testuali con una sorta di OCR automatizzato ma diventa un procedimento assurdamente complicato.
 
  • Mi piace
Reactions: LucaBORIS

Robertob89

Moderatore
Staff Forum
4,136
2,284
Hardware Utente
CPU
Ryzen 5 3600 @ 4.2ghz 1.35v
Dissipatore
Custom Loop: wb cpu e gpu EK+HL gts 360/240
Scheda Madre
Asus Prime X470 Pro
Hard Disk
Samsung 960 Evo + Samsung 850 Evo
RAM
16 gb G skill Trident 3200mhz CL16
Scheda Video
Evga 1080TI Sc Black Gaming OC
Monitor
Acer Predator 27" 144hz 1440p IPS
Alimentatore
Evga 650W SuperNova G2
Case
Cooler Master H500M
Sistema Operativo
Win 10 Pro 64 bit
No vabbè e qua gli servirebbe un qualcosa di veramente super tecnologico, e poi non sempre sono precisi nella lettura.
Ma infatti è roba da IA e machine learning cloud e simili
 

ZioPowerade

Nuovo Utente
Ma il difficile è nel trasformare lo screen in dati excel?

Ci sono alternative che possano fare al caso mio ossia trovare, registrare e immagazzinare numeri presenti su una pagina web?
Che so, a livello di sorgenti pagina?

Grazie

Inviato dal mio HUAWEI VNS-L31 utilizzando Tapatalk
 

Themickelson

Nuovo Utente
La lettura di testo da immagini è un po' complessa come cosa.
Puoi affacciarti sul web scraping per ottenere risultati da pagine web senza grosse difficoltà e usare un linguaggio di programmazione che sa gestire excel tipo VB.Net o C# o Python.
Se vuoi approfondire puoi vedere htmlagilitypack per C# o beautifulsoup per Python.
 
  • Mi piace
Reactions: Reeaver

Reeaver

Utente Attivo
1,170
128
Hardware Utente
CPU
AMD RYZEN 5 1600
Dissipatore
NOCTUA NH-U12S
Scheda Madre
MSI B350 TOMAHAWK
Hard Disk
SSD SAMSUNG 850 250 GB + WD CAVIAR BLUE 1TB
RAM
HYPER X 16GB 2400MHz DDR4 LP
Scheda Video
ASUS ROG STRIX GTX1070 O8GB
Scheda Audio
INTEGRATA
Monitor
SAMSUNG C24F390
Alimentatore
SEASONIC SSR-550M
Case
NZXT S340
Periferiche
MOUSE, TASTIERA, MANI
Internet
FIBRA FTTH 1GB
Sistema Operativo
WINDOWS 10 PRO 64-BIT
Ciao

Quello che tu chiedi è un problema complesso. Tuttavia, noi programmatori, non risolviamo problemi complessi bensì li riduciamo a problemi singoli semplici

Partiamo dalla lettura del testo dentro l'immagine: non è così difficile come sembra se si adottano le giuste tecniche di preprocessing. Ovviamente dovresti postare un esempio (o più) di immagine che vuoi analizzare per darti una risposta più precisa. Non bisogna per forza andare nel campo del machine learning (al massimo cloud per fare le chiamate alle API, ma non è difficile).

Gli screenshot: cosa semplice da fare con Python.

Salvare i dati: la cosa è macchinosa (ma non difficile) in quanto dovresti organizzare le varie parti di screenshot per stabilire che tipi di dati sono.

È un progetto interessante che sicuramente richiede del tempo ma che potrebbe riverlarsi più semplice di quanto si pensa. Non sto dicendo che lo fai ad occhi chiusi ma che, con il giusto impegno, è fattibilissimo.

Posta le immagini su cui andresti a lavorare per vedere se riesco a tirare fuori qualche dato..
 
  • Mi piace
Reactions: Robertob89

ZioPowerade

Nuovo Utente
Ciao

Quello che tu chiedi è un problema complesso. Tuttavia, noi programmatori, non risolviamo problemi complessi bensì li riduciamo a problemi singoli semplici

Partiamo dalla lettura del testo dentro l'immagine: non è così difficile come sembra se si adottano le giuste tecniche di preprocessing. Ovviamente dovresti postare un esempio (o più) di immagine che vuoi analizzare per darti una risposta più precisa. Non bisogna per forza andare nel campo del machine learning (al massimo cloud per fare le chiamate alle API, ma non è difficile).

Gli screenshot: cosa semplice da fare con Python.

Salvare i dati: la cosa è macchinosa (ma non difficile) in quanto dovresti organizzare le varie parti di screenshot per stabilire che tipi di dati sono.

È un progetto interessante che sicuramente richiede del tempo ma che potrebbe riverlarsi più semplice di quanto si pensa. Non sto dicendo che lo fai ad occhi chiusi ma che, con il giusto impegno, è fattibilissimo.

Posta le immagini su cui andresti a lavorare per vedere se riesco a tirare fuori qualche dato..
Ciao Reeaver,

Mi spieghi come funziona GitHub? Cosa posso fare da là?

Per quanto riguarda gli esempi che mi chiedi, sostanzialmente è proprio creare un database sullo storico delle tariffe di vendita di un hotel ricercando giornalmente per soggiorni da qui a un anno.


Quindi, cerco la località su booking.com, mi vengono fuori tutti i risultati e quello che andrà a formare il database sarà:
- destinazione
- check-in
- nome dell'hotel
- tipologia di stanza
- miglior tariffa di vendita (sempre quella mostrata nell'anteprima)

Domani ripeto la ricerca sulle stesse date e vedo cosa è cambiato.

340555

340556

P.S. A questo punto non so se fare lo screenshot e trascrivere il testo sia la soluzione migliore ma è la prima cosa che mi è venuta in mente.
Magari si può, e forse sarebbe più semplice, "entrare" nella pagina di booking.com e scaricare i dati in qualche modo.

Inviato dal mio HUAWEI VNS-L31 utilizzando Tapatalk
 
Ultima modifica:

Andretti60

Utente Èlite
3,429
2,298
Hardware Utente
Screenshot e OCR non e' il metodo di un programmatore, specialmente per i dati di una pagina web.

La prima cosa che un programmatore farebbe e' una ricerca google, la parola d'ordine e' "non reinventare la ruota", molte volte (molte di piu' di quanto uno si aspetti) qualcuno ha gia trovato la soluzione. Ovvio che sia meglio fare la ricerca in inglese.

In genere si guarda prima se il sito permette di esportare i dati, alcuni lo fanno, specie quelli che hanno un database, oppure mettono a disposizione una serie di API (Application Programming Interface) che opportunamente chiamate interagiscono con il loto database e con le quali si ottiene quello che si vuole (non conosco booking.com per cui non saprei).

In mancanza di altro, si fa da soli. Si apre la pagina HTML del sito e la si esamina (e' un semplice file di testo, quindi basta un blocco note, oppure se si usa Crhome basta fare clocca-destra e selezionare "view page source"), "itenditificando" i campi che interessano, scrivendo codice che li identifica, estrae e salva come si vuole. Python e Java sono i linguaggi preferiti in questo caso. Ovviamente non e' un metodo sicuro, in quanto un sito web puo' essere cambiato sempre da chi lo mantiene, quindi occorre mettere segnali di errore in modo da sapere quando occorre "ritoccare" il codice (esaminando nuovamente la pagina HTML). Io personalmente non ho mai dovuto scrivere nulla di cio', ma ho visto script in Python che fanno cose simili, meravigliandomi di quanto poco codice ci sia.
 
  • Mi piace
Reactions: Reeaver e Mursey

icox

Utente Attivo
349
132
Hardware Utente
Spesso i grossi portali espongono delle API per accedere ai dati e molto altro, per Booking ad esempio partirei da qui: https://developers.booking.com/api/index.html

In alcuni casi un semplice scraper HTML potrebbe complicare non di poco il lavoro, sopratutto per quelle pagine che non sono statiche e/o generate da un server (cerca client-side rendering se ti interessa). Spesso quella che a prima vista sembra una semplice pagina potrebbe in realta' essere molto complessa e cambiare struttura a seconda dell'utente (registrato o meno, tipo di dispositivo, posizione geografica, ecc).
 

Reeaver

Utente Attivo
1,170
128
Hardware Utente
CPU
AMD RYZEN 5 1600
Dissipatore
NOCTUA NH-U12S
Scheda Madre
MSI B350 TOMAHAWK
Hard Disk
SSD SAMSUNG 850 250 GB + WD CAVIAR BLUE 1TB
RAM
HYPER X 16GB 2400MHz DDR4 LP
Scheda Video
ASUS ROG STRIX GTX1070 O8GB
Scheda Audio
INTEGRATA
Monitor
SAMSUNG C24F390
Alimentatore
SEASONIC SSR-550M
Case
NZXT S340
Periferiche
MOUSE, TASTIERA, MANI
Internet
FIBRA FTTH 1GB
Sistema Operativo
WINDOWS 10 PRO 64-BIT
Spesso i grossi portali espongono delle API per accedere ai dati e molto altro, per Booking ad esempio partirei da qui: https://developers.booking.com/api/index.html

In alcuni casi un semplice scraper HTML potrebbe complicare non di poco il lavoro, sopratutto per quelle pagine che non sono statiche e/o generate da un server (cerca client-side rendering se ti interessa). Spesso quella che a prima vista sembra una semplice pagina potrebbe in realta' essere molto complessa e cambiare struttura a seconda dell'utente (registrato o meno, tipo di dispositivo, posizione geografica, ecc).
Certo, sarebbe ancora meglio avere accesso alle API piuttosto che lavorare con gli screenshot. Quelle che hai indicato sono gratuite?

Segnalo anche questo nel caso possa essere d'aiuto: https://blog.rapidapi.com/top-booking-apis-list/

Screenshot e OCR non e' il metodo di un programmatore, specialmente per i dati di una pagina web.

La prima cosa che un programmatore farebbe e' una ricerca google, la parola d'ordine e' "non reinventare la ruota", molte volte (molte di piu' di quanto uno si aspetti) qualcuno ha gia trovato la soluzione. Ovvio che sia meglio fare la ricerca in inglese.

In genere si guarda prima se il sito permette di esportare i dati, alcuni lo fanno, specie quelli che hanno un database, oppure mettono a disposizione una serie di API (Application Programming Interface) che opportunamente chiamate interagiscono con il loto database e con le quali si ottiene quello che si vuole (non conosco booking.com per cui non saprei).

In mancanza di altro, si fa da soli. Si apre la pagina HTML del sito e la si esamina (e' un semplice file di testo, quindi basta un blocco note, oppure se si usa Crhome basta fare clocca-destra e selezionare "view page source"), "itenditificando" i campi che interessano, scrivendo codice che li identifica, estrae e salva come si vuole. Python e Java sono i linguaggi preferiti in questo caso. Ovviamente non e' un metodo sicuro, in quanto un sito web puo' essere cambiato sempre da chi lo mantiene, quindi occorre mettere segnali di errore in modo da sapere quando occorre "ritoccare" il codice (esaminando nuovamente la pagina HTML). Io personalmente non ho mai dovuto scrivere nulla di cio', ma ho visto script in Python che fanno cose simili, meravigliandomi di quanto poco codice ci sia.
È vero che ci potrebbero essere soluzioni più programmatiche ma il titolo indicava nello specifico gli screenshot così ne ho approfittato per cercare di parlare anche di (eventuali) altre tecnologie.
Per il discorso delle API è vero, sono da preferire laddove disponibili. Eventualmente, se non ci sono si può andare di scrapping della pagina (in questo caso penso sia anche utile introdurre Selenium in quanto BeautifulSoup non basterebbe visto che deve fare delle azioni prima di recuperare dei risultati - tenendo sempre in conto se booking accetta o meno i bot di quel tipo).

Il problema posto ha, a questo punto (ma anche prima...), più soluzioni. I campi richiesti dall'utente sono due, di cui il primo è molto semplice da rilevare/identificare dato uno screenshot.

A questo punto però mi viene da chiedere a @ZioPowerade : quali sono le tue conoscenze informatiche ? Visto che mi hai chiesto come funziona GitHub, mi viene il dubbio..
 
Ultima modifica:

ZioPowerade

Nuovo Utente
Certo, sarebbe ancora meglio avere accesso alle API piuttosto che lavorare con gli screenshot. Quelle che hai indicato sono gratuite?

Segnalo anche questo nel caso possa essere d'aiuto: https://blog.rapidapi.com/top-booking-apis-list/



È vero che ci potrebbero essere soluzioni più programmatiche ma il titolo indicava nello specifico gli screenshot così ne ho approfittato per cercare di parlare anche di (eventuali) altre tecnologie.
Per il discorso delle API è vero, sono da preferire laddove disponibili. Eventualmente, se non ci sono si può andare di scrapping della pagina (in questo caso penso sia anche utile introdurre Selenium in quanto BeautifulSoup non basterebbe visto che deve fare delle azioni prima di recuperare dei risultati - tenendo sempre in conto se booking accetta o meno i bot di quel tipo).

Il problema posto ha, a questo punto (ma anche prima...), più soluzioni. I campi richiesti dall'utente sono due, di cui il primo è molto semplice da rilevare/identificare dato uno screenshot.

A questo punto però mi viene da chiedere a @ZioPowerade : quali sono le tue conoscenze informatiche ? Visto che mi hai chiesto come funziona GitHub, mi viene il dubbio..
Le conoscenze informatiche di programmazione sono prossime allo zero.
Utilizzo giornalmente le macro di excel, mai scritte totalmente da zero ma prendendo pezzi qua e là e adattate secondo le mie esigenze.

Diciamo che voglio capire se possibile mettere in pratica le mie idee ed è per quello che la prima cosa a cui ho pensato è stata la trascrittura degli screenshot

Non avevo pensato alle API ed effettivamente esistono, anche perché ci sono software che le usano.
Quello che non so è se una persona "qualsiasi" senza permessi la possa utilizzare.

Se avete pazienza, sarei ben disponibile a imparare qualcosa se possa servire a portare avanti questo progetto.

Grazie

Inviato dal mio HUAWEI VNS-L31 utilizzando Tapatalk
 

Entra

oppure Accedi utilizzando