Come scattare in modo programmatico un'istantanea di pagine Web sottoposte a scansione (in Ruby)?
-
06-07-2019 - |
Domanda
Qual è la soluzione migliore per prendere di programmazione un'istantanea di una pagina web?
La situazione è questa: vorrei strisciare un po 'di pagine web e di scattare istantanee di anteprima di loro periodicamente, diciamo una volta ogni pochi mesi, senza dover passare manualmente a ciascuno. Vorrei anche essere in grado di prendere jpg / png istantanee di siti web che potrebbero essere completamente Flash / Flex, quindi mi piacerebbe essere necessario attendere fino a quando non caricato di prendere l'istantanea in qualche modo.
Sarebbe bello se ci fosse alcun limite al numero di miniature ho potuto generare (entro limiti ragionevoli, dire 1000 al giorno).
Qualche idea su come farlo in Ruby? Sembra piuttosto difficile.
I browser per fare questo in:. Safari o Firefox, Safari, preferibilmente
Grazie mille.
Soluzione
Dipende molto dal tuo sistema operativo. Ciò di cui hai bisogno è un modo per collegarti a un browser Web e salvarlo su un'immagine.
Se sei su un Mac, immagino che la soluzione migliore sarebbe usare MacRuby (o RubyCocoa - anche se credo che questo sarà deprecato nel prossimo futuro) e quindi per utilizzare il WebKit framework per caricare la pagina e renderla come immagine.
Questo è sicuramente possibile, per l'ispirazione potresti guardare i Paparazzi! e webkit2png progetti.
Un'altra opzione, che non dipende dal sistema operativo, potrebbe essere quella di utilizzare API BrowserShots .
Altri suggerimenti
Non esiste una libreria integrata in Ruby per il rendering di una pagina Web.
-
Uso del selenio & amp; Il rubino è una possibilità. Puoi eseguire Firefox come browser senza testa (ad es. Su un server).
-
Ecco il codice sorgente per le riprese del browser. http://sourceforge.net/projects/browsershots/files/
-
Se stai usando Linux potresti usare http://khtml2png.sourceforge.net/ e lo script tramite Ruby.
-
Alcuni servizi a pagamento per provare ad automatizzare
visto da .... ie? firefox? musica lirica? uno dei tanti motori webkit?
se solo fosse possibile automatizzare http://browsershots.org :)
Usa selenium-rc, viene fornito con funzionalità di snapshot.
Con jruby è possibile utilizzare la libreria del browser SWT.