Domanda

Sono uno sviluppatore Java e ho una domanda sull'automazione di un'attività che mi è stata assegnata. Devo 3 volte al giorno, accedere a questo sito Web che abbiamo al lavoro, selezionare alcuni elementi del modulo e quindi fare clic su Invia per stampare un rapporto. Mi chiedo come posso scrivere una sorta di script che automatizzerà questo compito? Dove dovrei iniziare? In che lingua dovrei farlo? Pensavo che PHP potesse essere in grado di fare questo o anche uno script greasemonkey forse?

Grazie mille.

È stato utile?

Soluzione

Guarda cURL in PHP. Ti consente di eseguire tutte le normali funzioni di un browser web con codice (oltre a spostare il mouse). E sì, dovrai fare lo scraping dello schermo.

Altri suggerimenti

Penso che il potenziale punto critico che non sia stato ancora toccato sia la tua frase " accedi a questo sito web " ... A seconda di come devi effettuare l'accesso, potresti dover entrare da una porta sul retro per accedere al rapporto.

Ho avuto problemi con questo genere di cose in passato quando ho dovuto scaricare un rapporto da un sito di terze parti. Il problema era che non ero in grado di autenticarmi per accedere ai parametri del rapporto a causa del modo hard-coded e meno intuitivo di script che mi era richiesto di accedere al sito. Tuttavia, presumo che il tuo sito sia interno alla tua organizzazione, quindi potrebbe essere possibile bypassare / rielaborare i requisiti di sicurezza per accedere ai dati. In questo caso, dovresti essere in grado di utilizzare uno dei metodi di raschiatura dello schermo descritti sopra.

In caso contrario, potrebbe essere necessario incorporare la procedura di accesso effettiva nello script o nell'applicazione, scaricare e acquisire tutti i cookie che possono essere impostati e incorporarli nella richiesta di dati.

Non so in che lingua è scritto il tuo modulo, ma cosa potresti fare è:

  • riscrivi il modulo in uno script che genera il rapporto quando viene chiamato
  • utilizza una cron per programmare questa attività da eseguire quotidianamente e inviare l'output a si

Un cron è sostanzialmente un'attività pianificata su sistemi Unix. I server basati su Windows possono utilizzare l'Utilità di pianificazione quasi allo stesso scopo.

Quanto sopra presuppone che tu abbia accesso allo script che al momento genera il rapporto e che puoi modificarlo / copiarlo in un nuovo file che ti invierà l'output tramite e-mail. In caso contrario, potrebbe essere necessario esaminare la raschiatura dello schermo. Dato che sei uno sviluppatore Java, potresti trovare questo elenco di utilità per lo scraping dello schermo Java utili per iniziare.

Si chiama " web scraping " o " screen scraping " ;, e ci sono molte librerie là fuori per farlo. Non potrei parlare con uno strumento specifico di Java, però: sono un tipo .Net (il modo .Net sarebbe System.Net.WebClient o System.Net.HttpWebRequest / System.Net.HttpWebResponse). Ma sono sicuro che c'è qualcosa.

Nel frattempo, il primo passo è andare alla pagina in cui si immettono i valori del modulo e visualizzare l'origine della pagina. Cerca il & Lt; form & Gt specifico; elemento che stai compilando e vedi dove pubblica (è azione ). Quindi, trova qualsiasi & Lt; input & Gt; < seleziona > ;, < textarea > elementi utilizzati, inclusi eventuali input nascosti per il modulo, e capire quali valori è necessario ottenere. Questo ti dirà come creare la tua richiesta una volta trovata una libreria che ti permetterà di inviarla.

Se devi prima accedere al sito per accedere alla pagina, le cose possono essere più complicate. Potrebbe essere necessario recuperare e analizzare un valore di sessione o essere in grado di inviare determinati cookie al server.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top