Como gerar o código-fonte HTML da página da web em um arquivo

Como gerar o código-fonte HTML da página da web em um arquivo

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

Ao usar o seguinte comando no terminal: w3m <url> -dumpo programa exibe o site de uma forma não interativa, mas não sua fonte html.

Se você abrir um site com w3m <url>, o terminal exibirá o site e se você pressionarv, então o programa exibirá a fonte html, tentei fazer o script, mas sem sucesso. Achei que o argumento da linha de comando -dump_sourceme ajudaria, mas a única coisa que consegui foi um conteúdo de leitura não humano, não sei o que -dump_sourcedeveria retornar

Aqui está o que tentei até agora:

  • Use -T text/htmlwith -dumpno terminal, mas a saída não mudou
  • Use -T text/plainwith -dump_sourceno terminal esperando que a saída não humana seja convertida em texto simples, mas sem sucesso (não entendi para que -T é usado, mesmo depois de ler o manual do w3m digitando man w3mno terminal)
  • Sabendo que pressionarvenquanto o w3m está exibindo uma mudança de site do conteúdo da página da web para o código-fonte html, tentei usargdbpara anexá-lo ao processo w3m e redirecionar seustdinesaída padrãoaos meus arquivos (input.txt, output.txt) cujo input.txt contém um únicov, mas não tive sucesso. Fazer isso no meu programa de teste funcionou conforme o esperado. Eu segui o que foi descritoaqui. Se eu escrever ls -l /proc/<w3m_pid>/fd, onde w3m_pid é meu ID de processo w3m que obtive usando ps axno terminal, posso ver que há 3 descritores de arquivo, se eu tentar redirecionar o terceiro, o programa trava e exibe:Ocorreu um erro: errorno=25
  • Redirecionar a E/S padrão w3m <url> < input.txt > output.txttambém não funcionou
  • W3M usa atalhos de teclado para navegar na web, isso significa que se você pressionarvnão há necessidade de apertar enter, o terminal não está armazenando em buffer a entrada, usando gdb anexado ao processo w3m tentei removê-lo usando p system ("/bin/stty cooked"), mas o atalho de teclado w3m não mudou.

Minha pergunta é: por que o redirecionamento de E/S com gdb não está funcionando e o que posso fazer para obter o código-fonte html? w3m tem a opção de gerar código-fonte HTML que estou faltando ou teria que usar outro programa?

PS: Preciso de código-fonte html para um dever de casa da universidade, com código-fonte html posso criar um script para navegar na web e gerar a página em um arquivo, então devo usar essas saídas com flex para extrair informações estáticas sobre as coisas na web, tipo: quantas palavras a pilha aparece em perguntas sobre a linguagem c? Esta é a minha ideia.

Qualquer sugestão seria apreciada.

Versão W3M:0.5.3+debian-15

Versão do GDB:7.7.1

Versão Ubuntu:14.04

Desde já, obrigado!

Responder1

Por que você não pode usar curl?

curl web-address > file-source.

irá gerar o código-fonte nofile

Assim

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

Responder2

Isso já foi respondido em:https://askubuntu.com/a/1273410/1124534

w3m -o accept_encoding=UTF-8 -dump_source google.com >file

informação relacionada