2015-01-29 23 views
13

Prima di tutto, non sto cercando alcun aiuto nello sviluppo o nell'ambiente di test. Inoltre sono nuovo di phantomjs e tutto ciò che voglio è solo l'operazione da riga di comando di phantomjs sul terminale Linux.Ottieni javascript reso sorgente HTML utilizzando phantomjs

Ho una pagina HTML il cui corpo è reso da qualche codice javascript. Quello di cui ho bisogno è che volevo scaricare quel contenuto html renderizzato usando phantomjs.

Non ho idea di usare phantomjs. Ho un po 'di esperienza nello scripting di shell. Quindi ho provato a farlo con curl. Ma poiché il ricciolo non è sufficiente per il rendering di javascript, sono stato in grado di ottenere solo l'html del codice sorgente predefinito. I contenuti sottoposti a rendering non sono stati scaricati. Ho sentito che ruby ​​mechanize potrebbe fare questo lavoro. Ma non ho conoscenza del rubino. Quindi su ulteriori indagini ho trovato lo strumento da riga di comando phantomjs. Come posso fare questo con phantomjs?

Non esitate a chiedere quali sono le informazioni aggiuntive che devo fornire.

+0

Condividere la vostra ricerca aiuta tutti. Dicci cosa hai provato e perché non ha soddisfatto le tue esigenze. Questo dimostra che ti sei preso del tempo per cercare di aiutare te stesso, ci salva dal ribadire risposte ovvie e soprattutto ti aiuta a ottenere una risposta più specifica e pertinente! Vedi anche [come chiedere] (http://stackoverflow.com/questions/how-to-ask) – Cerbrus

+0

Ho aggiornato la mia domanda con le ricerche che ho fatto. –

+0

Stai usando phantomjs solo per scaricare contenuti html o provare a scaricarli come immagini? Per generare il controllo dell'immagine http://phantomjs.org/screen-capture.html – jsjunkie

risposta

12

Sfortunatamente, ciò non è possibile usando solo la riga di comando di PhantomJS. Devi usare un file Javascript per realizzare qualsiasi cosa con PhantomJS.

Ecco una versione molto semplice dello script è possibile utilizzare

Codice in gran parte copiato da https://stackoverflow.com/a/12469284/4499924

printSource.js

var system = require('system'); 
var page = require('webpage').create(); 
// system.args[0] is the filename, so system.args[1] is the first real argument 
var url = system.args[1]; 
// render the page, and run the callback function 
page.open(url, function() { 
    // page.content is the source 
    console.log(page.content); 
    // need to call phantom.exit() to prevent from hanging 
    phantom.exit(); 
}); 

Per stampare il sorgente della pagina sullo standard output .

phantomjs printSource.js http://todomvc.com/examples/emberjs/

Per salvare il sorgente della pagina in un file

phantomjs printSource.js http://todomvc.com/examples/emberjs/ > ember.html

+0

Spero che questo risponderebbe alla mia domanda. Penso che potrebbe essere necessario utilizzare lo script che viene caricato nella mia applicazione di destinazione invece di questo. –

+1

Immagino che possa funzionare per questa specifica istanza, ma la soluzione che ti ho dato funzionerà per qualsiasi pagina –

+1

per me. risposta molto utile –

Problemi correlati