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> -dump
o 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_source
me ajudaria, mas a única coisa que consegui foi um conteúdo de leitura não humano, não sei o que -dump_source
deveria retornar
Aqui está o que tentei até agora:
- Use
-T text/html
with-dump
no terminal, mas a saída não mudou - Use
-T text/plain
with-dump_source
no 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 digitandoman w3m
no 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 usandops ax
no 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.txt
també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