Como gerar código-fonte HTML em um arquivo

1

Meu objetivo é gerar uma fonte html em um arquivo, estou usando w3m para navegar na web a partir do terminal.

Ao usar o seguinte comando no terminal: w3m <url> -dump o programa exibe o site de maneira não interativa, mas não a fonte html.

Se você abrir um site com w3m <url> , o terminal exibirá o site e se você pressionar v , o programa exibirá a fonte html, tentei fazer o script, mas sem sucesso. Eu pensei que o argumento de linha de comando -dump_source iria me ajudar, mas a única coisa que eu tenho é um conteúdo de leitura não-humano, eu não sei o que -dump_source deveria retornar

Aqui está o que eu tentei até agora:

  • Use -T text/html com -dump no terminal, mas a saída não mudou
  • Use -T text/plain com -dump_source no terminal esperando que a saída não humana seja convertida em texto simples, mas sem sucesso (não entendi o que -T é usado, mesmo depois de ler o manual w3m por digitando man w3m no terminal)
  • Sabendo que pressionar v enquanto o w3m está exibindo uma alternância de site do conteúdo da página da web para o código fonte html, tentei usar o gdb para anexá-lo ao processo w3m e redirecionar seus stdin e stdout para meus arquivos (input.txt, output.txt) que input.txt contém um único v , mas eu não teve sucesso. Fazendo isso no meu programa de teste funcionou como esperado. Eu segui o que foi descrito aqui . Se eu escrever ls -l /proc/<w3m_pid>/fd , onde w3m_pid é o meu id do processo w3m que eu obtive usando ps ax no terminal, posso ver que há 3 descritores de arquivo, se eu tentar redirecionar o terceiro, o programa trava e exibe: < strong> Ocorreu um erro: errorno = 25
  • Redirecionar o padrão de E / S com w3m <url> < input.txt > output.txt também não funcionou
  • O W3M usa atalhos de teclado para navegar na web, isso significa que, se você pressionar v , não haverá necessidade de pressionar enter, o terminal não estará armazenando em buffer a entrada, usando gdb anexado ao processo w3m tentou removê-lo usando p system ("/bin/stty cooked") , mas o keybind w3m não mudou.

A minha pergunta é: por que redirecionar E / S com gdb não está funcionando e o que eu posso fazer para obter o código fonte html? w3m tem uma opção para saída de código fonte html que eu estou ausente ou eu teria que usar outro programa?

PS: Eu preciso de código fonte html para uma lição de casa na universidade, com código fonte html eu posso criar um script para navegar na web e enviar a página em um arquivo, então devo usar essas saídas flex para extrair estática informações sobre coisas na web, como: quantas palavras a pilha aparece em perguntas sobre a linguagem c? Essa é a minha ideia.

Qualquer sugestão seria apreciada.

Versão do W3M: 0.5.3 + debian-15

Versão do GDB: 7.7.1

Versão do Ubuntu: 14.04

Obrigado antecipadamente!

    
por Murillo Henrique 07.09.2016 / 17:05

1 resposta

6

Por que você não pode usar curl ?

curl web-address > file-source.

gerará o código fonte no file

Como isso

curl http://askubuntu.com/questions/822139/how-to-output-web-page-html-source-code-into-a-file > source-html
    
por Anwar 07.09.2016 / 17:13