Como obter o texto de uma página usando wget sem html?

Como obter o texto de uma página usando wget sem html?

Se eu tentar o wget em uma página da web, recebo a página como html. É possível recuperar apenas o texto de um arquivo sem html associado? (Isso é necessário para mim, pois algumas das páginas HTML que contêm o programa c estão sendo baixadas com tags html. Tenho que abri-lo no navegador e copiar manualmente o texto para criar um arquivo .c.)

Responder1

wgetrecuperará apenas o documento. Se o documento estiver em HTML, o que você deseja é o resultado da análise do documento.

Você poderia, por exemplo, usar lynx -dump -nolist, se tiver lince por perto.

lynxé um navegador leve e simples, que possui o -dumprecurso usado para gerar o resultado do processo de análise. -nolistevita a lista de links no final, que aparecerá se a página contiver algum hiperlink.

Conforme mencionado pelo @Thor, elinkspode ser usado para isso também, pois também possui uma -dumpopção (e deve -no-referencesomitir a lista de links). Pode ser especialmente útil se você percorrer algum site usando -sigh-frames (MTFBWY).

Além disso, lembre-se de que, a menos que a página seja apenas código C com tags HTML, você precisará verificar o resultado, apenas para ter certeza de que não há nada além de código C ali.

Responder2

Se você não possui essas outras ferramentas instaladas, apenas o wget, e a página não possui formatação, apenas texto simples e links, por exemplo, código-fonte ou uma lista de arquivos, você pode remover o HTML usando sed assim:

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

Isso usa wget para despejar a origem da página em STDOUT e sed para remover quaisquer pares < > e qualquer coisa entre eles.

Você pode então redirecionar a saída do comando sed para o arquivo que deseja criar usando > :

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

NB: Você pode descobrir que há espaços em branco extras no arquivo que você não deseja (por exemplo, as linhas são recuadas em algumas colunas)

Pode ser mais fácil usar seu editor de texto para organizar o arquivo (ou um formatador de origem enquanto você baixa o código-fonte C).

Se você precisar fazer a mesma coisa simples em cada linha do arquivo, você pode incluir um comando para fazer isso no comando sed (retirando aqui um espaço à esquerda):

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

Responder3

apenas para adicionar outra ferramenta. Eu prefiro o w3m, que é um lynxnavegador de console semelhante. Você pode querer verificar o que já está disponível em seu sistema.

w3m -dump website.html

informação relacionada