GNU/Linux >> Linux Esercitazione >  >> Linux

Come ottenere il testo di una pagina usando wget senza html?

wget recupererà solo il documento. Se il documento è in HTML, quello che vuoi è il risultato dell'analisi del documento.

Potresti, ad esempio, utilizzare lynx -dump -nolist , se hai una lince in giro.

lynx è un browser web leggero e semplice, che ha -dump caratteristica, utilizzata per generare il risultato del processo di analisi. -nolist evita l'elenco dei collegamenti alla fine, che verrà visualizzato se la pagina contiene collegamenti ipertestuali.

Come menzionato da @Thor, elinks può essere utilizzato anche per questo, in quanto ha anche un -dump opzione (e ha -no-references per omettere l'elenco dei collegamenti). Può essere particolarmente utile se cammini su un sito utilizzando -sigh-frames (MTFBWY).

Inoltre, tieni presente che, a meno che la pagina non sia in realtà solo codice C con tag HTML, dovrai controllare il risultato, solo per assicurarti che non ci sia altro che codice C.


Se non hai installato questi altri strumenti, solo wget e la pagina non ha formattazione solo testo semplice e collegamenti, ad es. codice sorgente o un elenco di file, puoi rimuovere l'HTML usando sed in questo modo:

wget -qO- http://address/of/page/you/want/to/view/ | sed -e 's/<[^>]*>//g'

Questo utilizza wget per eseguire il dump dell'origine della pagina su STDOUT e sed per rimuovere qualsiasi <> coppia e qualsiasi cosa tra di loro.

È quindi possibile reindirizzare l'output del comando sed al file che si desidera creare utilizzando> :

wget -qO- http://.../ | sed -e 's/<[^>]*>//g' > downloaded_file.txt

NB:potresti scoprire che nel file sono presenti spazi bianchi aggiuntivi che non desideri (ad esempio, le righe sono rientrate di alcune colonne)

Potrebbe essere più semplice utilizzare il tuo editor di testo per riordinare il file (o un formattatore sorgente mentre stai scaricando il codice sorgente C).

Se hai bisogno di fare la stessa semplice cosa su ogni riga del file, puoi includere un comando per farlo nel comando sed (qui togliendo uno spazio iniziale):

wget -qO- http://.../ | sed -e 's/<[^>]*>//g;s/^ //g' > downloaded_stripped_file.txt

solo per aggiungere un altro strumento. Preferisco w3m , che è un lynx come il browser della console. Potresti voler controllare cosa è già disponibile sul tuo sistema.

w3m -dump website.html

Linux
  1. Come scrivere testo sull'immagine usando il comando Linux

  2. Debian:come avviare Debian in modalità testo senza utilizzare Gui?

  3. Come eliminare più righe casuali da un file di testo utilizzando Sed?

  4. Come ottenere un indirizzo di memoria specifico usando C

  5. Come ottenere il contenuto di una pagina Web in una variabile di shell?

Come passare automaticamente a una directory senza utilizzare il comando Cd in Linux

Come bloccare un file di testo in Linux usando il comando flock

Come eliminare il testo selezionato nell'editor vi

Come convertire HTML in testo?

Come posso ottenere un elenco di tutte le parole errate in un testo usando Linux?

Come rimuovere un file senza usare rm?