2013-03-10 18 views
8

Sto avendo un momento difficile per trovare il modo di salvare la pagina come HTML o txt utilizzando riga di comando in Chrome browser,Apri URL in Chrome e salvare il suo codice sorgente utilizzando prompt dei comandi

Questo è quello che ho fatto finora,

C:\Users\Cipher\AppData\Local\Google\Chrome\Application>chrome.exe --new-window 
http://google.com 

Questo comando aprirà una nuova finestra del browser Chrome e visitare google.com, ma non ho potuto essere in grado di capire la nostra come posso salvare google.com come HTML o come file txt, c'è comunque da fare usando il prompt dei comandi?

+1

La mia strategia sarebbe quella di specificare una dir fittica di dati utente (usando il flag '--user-data-dir' - vedere http://www.ericdlarson.com/misc/chrome_command_line_flags.html) e quindi copiare il il più recente file html dalla directory Temp a qualsiasi destinazione tu scelga. Probabilmente vorresti creare e distruggere la dir di dati fittizi come parte di ogni esecuzione del comando. – Noyo

+0

Forse usato insieme al flag '--record-mode', che" salva * tutto * nella cache "? –

risposta

0

uso http://en.wikipedia.org/wiki/Chromium_Embedded_Framework (costruito nel componente webbrowser) per il download e la pagina di visualizzazione.

dopodiché, salvalo come desideri.

+0

Come lo usi per fare ciò che l'OP vuole? –

+1

@ Sridhar-Sarnobat buona domanda quasi dopo 3 anni. Non sto più utilizzando Chromium e non ho accesso ai progetti dov'era. grazie per aver votato – Zam

+0

Non credo di aver downvoted, l'icona in basso non è arancione. Ho downvoted l'altro che menziona 'wget' che è palesemente insufficiente. –

8

Hai davvero bisogno di aprire Google Chrome? È possibile ottenere il sorgente della pagina utilizzando Wget (disponibile per sistemi UNIX o per Windows in this post on SuperUser). Una volta installato, basta usare il seguente comando:

wget http://google.com -O yourfilename.html 

E questo dovrebbe essere tutto :) non credo che ci sia un modo per dire Chrome per scaricare il codice HTML dalla riga di comando anche se :(

UPDATE:. C'è un pronti contro termine su GitHub chiamato chrome-cli che permette all'utente di controllare Chrome dalla riga di comando unico inconveniente è che funziona solo su Mac OS X.

+0

Mi chiedo, quale possibile motivo può essere per questo? Se si scarica il codice sorgente ... è solo il codice sorgente. Massimo, può essere regolato su chrome user-agent, che può anche essere emulato con altri strumenti – Tigra

+1

@Tigra Il codice sorgente di molte pagine Web è * molto * diverso a seconda dell'utente che ha effettuato l'accesso :-). –

+0

La domanda è vecchia. Comunque, come ho detto: il codice sorgente è il codice sorgente. L'utente connesso non è magico. È la risposta ai cookie forniti. Che può anche essere passato via curl. – Tigra

6

non è possibile eseguire l'operazione che descrivi manualmente, ma è possibile eseguire utilizzando l'automazione WebDriver

Chrome può essere controllato a distanza tramite un'API chiamata WebDriver (parte della suite di automazione Selenium 2). WebDrive dispone di collegamenti per vari linguaggi di programmazione, tra cui ad es. JavaScript e Python.

Ecco esempio di codice per Python (non testato):

from selenium import webdriver 

driver = webdriver.Chrome('/path/to/chromedriver') # Optional argument, if not specified will search path. 
driver.get('http://www.google.com/'); 
html = driver.page_source 
f = open("myhtml", "wt") 
f.write(html) 
f.close() 

Orignal example

+0

Questo sta funzionando molto più lentamente di quanto effettivamente facendo in chrome per http://www.notalwaysright.com/page/1 – ytpillai

+0

Questo dovrebbe essere contrassegnato come la risposta giusta. È l'unica soluzione che funziona davvero ed è robusta. È solo un peccato che tu debba scrivere uno script piuttosto che invocare un singolo comando. –

+0

E provare ad utilizzare la nuova funzionalità headless di Chromium comporta la clonazione di un repo da 6 gb e la compilazione, per quanto posso dire. No grazie. –

4

Ho creato un piccolo script per eseguire esattamente questo compito: https://github.com/abiyani/automate-save-page-as. Guarda la demo gif nel README.

E automatizza le azioni della tastiera che altrimenti si eseguirebbero per salvare la pagina manualmente (invia letteralmente quei segnali chiave al sistema operativo). Come effetto collaterale del suo utilizzo in un altro mio progetto, è stato testato su vari gusti linux: Ubuntu, Mint, Fedora, ecc. E funziona bene su tutti loro. Probabilmente non funzionerà (almeno senza modifiche) su Mac, e certamente non su Windows.

+1

Buon lavoro. Per chiunque si stia chiedendo - questo funziona invocando il binario google-chrome, quindi usa 'xdotool' per inviare le battute: https://github.com/abiyani/automate-save-page-as/blob/master/save_page_as –

Problemi correlati