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

16

Se eu tentar acessar uma página da web, estou recebendo a página como html. É possível recuperar apenas o texto de um arquivo sem html associado? (Isso é necessário para mim desde que algumas das páginas HTML contém c programa está sendo baixado com tags html. Eu tenho que abri-lo no navegador e copiar manualmente o texto para fazer um arquivo. C.)

    
por Lunar Mushrooms 09.07.2012 / 10:25

3 respostas

24

wget recuperará 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 lynx por perto.

lynx é um navegador da Web simples e leve, que possui o recurso -dump , usado para gerar o resultado do processo de análise. -nolist evita a lista de links no final, que aparecerá se a página tiver hiperlinks.

Como mencionado por @Thor, elinks também pode ser usado para isso, pois também tem uma opção -dump (e tem -no-references para omitir a lista de links). Pode ser especialmente útil se você atravessar algum site usando frames de alta (MTFBWY).

Além disso, lembre-se de que, a menos que a página seja realmente apenas código C com tags HTML, será necessário verificar o resultado, apenas para garantir que não exista nada além de código C.

    
por 09.07.2012 / 10:29
4

Se você não tiver essas outras ferramentas instaladas, apenas wget, e a página não terá formatação apenas de texto simples e links, por exemplo, código-fonte ou uma lista de arquivos, você pode retirar 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 para STDOUT e sed para remover qualquer < > pares e qualquer coisa entre eles.

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

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

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

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

Se você precisar fazer a mesma coisa simples em todas as linhas do arquivo, inclua um comando para fazer isso no comando sed (aqui tirando um espaço à esquerda):

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

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

w3m -dump website.html
    
por 26.01.2016 / 13:39

Tags