"mas afinal, que graça tem ver a internet apenas como texto?" - indagam os incrédulos.
depende. se você está navegando despreocupadamente, a passeio, e com um link rápido, não tem muita graça mesmo, use o netscape. mas se você está com o tempo curto, fazendo pesquisas na internet e num link lento, para que perder tempo com vários tipos de fonte, tamanhos, cores, formatação desnecessária, imagens gratuitas, banners, flash, shockwave, javascript, e outras novidades tecnológicas inúteis que inventarão?
como trabalhar com o auxílio da internet para obter informações é rotina de muitos, o navegador lynx
(http://lynx.browser.org) é uma ferramenta indispensável. para começo de conversa, como bom navegador texto que é, ele nem tenta carregar as imagens da página, ou interpretar javascript, flash e outras "linguagens de programação" similares, mostrando a página mais rápido que qualquer navegador gráfico.
como também não precisa se preocupar com tamanhos, cores e tipos de fontes e desenho de frames e linhas de tabela, o texto é cuspido rapidamente na tela. falando sobre tabelas, versões mais recentes do lynx
até fazem algum tratamento nelas, tabulando as colunas, alinhando-as. mas sem desenhar as bordas, continua tudo apenas texto.
este é o grande trunfo do lynx
sobre seus "concorrentes", sempre se tem apenas texto na tela, texto este que pode ser gravado num arquivo (comando p
- Print) e "grepado" ou editado facilmente.
então para começar, pode-se chamar o programa já indicando a URL:
lynx https://aurelio.net
ou dentro dele, coloque uma URL nova com o comando g
(Go to), ou edite a URL atual com o gê maiúsculo: G
(g/G, lembrou do vi?). ah! por falar em grep
, para procurar um texto qualquer na página, use a barra /
.
a navegação entre links e páginas é feita de forma intuitiva, utilizando as setas ->
e <-
para ir e voltar. as setas para cima e para baixo servem para escolher os links da página e Page Up/Down
servem para rolá-la. para sair, q
.
para saciar a curiosidade de quem nunca viu uma página HTML em modo texto, aqui vai um screenshot
:
Título Um parágrafo normal de texto, com uma imagem: [ovni.jpg], seguida de um texto pré formatado. E agora uma lista de itens e subitens: * segunda-feira * terça-feira + tomar banho + pagar contas o telefone o luz o água * quarta-feira * ... E para terminar uma tabelinha de 3 colunas: joão manoel (operador) manhã/tarde josé maria (manutenção elétrica) tarde jair antônio carlos (limpeza) noite Obs.: note os alinhamentos esquerda/centralizado/direita
como se pode ver, as imagens aparecem apenas com o nome entre colchetes, ou com o conteúdo do campo ALT=""
, caso especificado. entrando na tela de opções (comando o
), podemos ignorar completamente as imagens, ou mostrá-las como links, para vê-las se quiser.
mas como ver imagens num navegador texto? basta usar um visualizador de imagens externo para console, como o zgv
(veja coluna do aurelio #3). o lynx
respeita as configurações de mime types
e seus programas, então basta adicionar a seguinte linha em seu /etc/mailcap
:
image/*; /usr/bin/zgv %s
e ao seguir um link que aponta para uma imagem, o zgv
é chamado para mostrá-la. mas mostrar imagens é uma das últimas coisas que se quer de um navegador texto, então vamos para a parte quente: extração de dados.
reforçando, como visto no exemplo, até as tabelas são representadas apenas com texto, então a extração de informação fica facilitada, não precisando ignorar caracteres embelezadores.
uma tarefa bem comum, é uma extração automatizada de dados à partir de uma página qualquer, digamos, uma que tenha a cotação diária do dólar. lááááá no meio da página, depois de quilos de banners de propaganda e links de navegação do site, tem uma linha assim:
Dólar paralelo (08/11/2001): R$ 2,62 compra R$ 2,67 venda
e precisamos extrair diariamente, as cotações de compra e venda para colocar num documento local. do diariamente, o crontab
se encarrega. mas como extrair apenas um trecho de uma página da internet? temos uma opção mágica para que o lynx
busque a página, renderize-a e cuspa o texto na saída padrão:
lynx -dump http://www.cotacaodolar.com.br/hoje.html
ou ainda, você pode gravar a página toda num arquivo:
lynx -dump http://www.cotacaodolar.com.br/hoje.html > cotacao.txt
e pronto! mais da metade do caminho já está andada. com o texto na mão, basta um "pipe" e um grep
e nosso problema está resolvido:
lynx -dump http://www.cotacaodolar.com.br/hoje.html | grep 'paralelo'
e temos extraída apenas a linha com as informações desejadas, obtidas fresquinhas direto da internet. percebeu o poder disso? usando o lynx
e filtros como grep
, sed
e awk
, pode-se obter automaticamente, QUALQUER dado de QUALQUER página da internet. deixemos os planos de dominação mundial para depois e vamos continuar a estressar o assunto.
suponhamos que você precise baixar a página em HTML mesmo, ou extrair dados que estão "escondidos" nas marcações e atributos de formulários. sem problema, usando o -source
baixamos a página "como ela é", igual ao "salvar como" de outros navegadores, ou o wget
:
lynx -source http://www.cotacaodolar.com.br/hoje.html > dolar.html
principalmente os que sofrem com conexões lentas, essa automatização é benéfica e econômica. digamos que você todos os dias acessa dois sites de notícia, um de esportes e um de variedades para ver as novidades do dia. então basta fazer um script rápido onde o lynx
baixa todas essas páginas. então você se conecta, roda o script, se desconecta, e pode ler as notícias com calma, sem gastar telefone.
e ainda, um segundo script pode reformatar as páginas, tirando todas as propagandas, alterando fontes e cores, ou seja, uma personalização local da página para que sua leitura fique mais agradável.
mas além de obter, você também pode enviar informações automaticamente (olha lá o que você vai fazer hein?). que tal preencher formulários para várias pessoas obtendo os dados de um banco de dados local e enviá-los para um site qualquer da internet?
echo "nome=carlos&idade=33&..." | lynx -post-data http://www.../cadastro.cgi
pa bo en me pa ba.
para ver usos práticos do lynx
para envio e obtenção automatizada de informações, acesse https://funcoeszz.net, a casa das "funções ZZ", um pacote de funções diversas para bash que usam lynx
e sed
para obter e formatar informações, fazendo pesquisas na internet em dicionários, tradutores, imposto de renda, cotação do dólar e outros.
além do lynx
há outros dois navegadores para modo texto que trazem funcionalidades a mais e dividem a preferência dos usuários: links
(http://artax.karlin.mff.cuni.cz/~mikulas/links) e w3m
(http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/eng), que possuem, entre outros, renderização de cores, tabelas e frames, e abertura de links em outras janelas (use com o screen
!). eles também contam com suporte a mouse, com direito a menu de contexto no botão direito (eca!). mas note que o links
tem um problema crônico com cookies e autenticação http
via proxy.
vida longa aos navegadores em modo texto, pois na busca de informações o que importa é o conteúdo, e não sua apresentação.