Saída diferente de lynx -dump quando executada como tarefa cron

1

Por alguns anos, tenho "raspado", usando lynx -dump , o conteúdo de uma página da Web que contém caracteres não latinos. Eu salvo o conteúdo da página em um arquivo, que eu modifico através da agência de sed, e envio isso no corpo de um e-mail - tudo isso acontecendo em um script que eu criei. Mas eu estou achando, depois de trocar distros (Ubuntu para Void) que meu script não está funcionando como esperado. Eu identifiquei o ponto de falha, como segue.

Quando executo a primeira parte do meu script (a parte que contém lynx -dump URL e o nome do arquivo no qual o conteúdo deve ser salvo) na linha de comando, tudo funciona conforme o esperado. O arquivo aparece e contém os caracteres não latinos que estou esperando. No entanto, quando tento automatizar o processo, estipulando o mesmo comando que um cron job, os resultados são diferentes. O arquivo esperado aparece, mas em vez de conter os caracteres não latinos esperados, o que obtenho é o mesmo texto transliterado usando caracteres latinos - não o que eu quero. O que segue no meu script está falhando, pois depende da presença dos caracteres não latinos.

Então, por que esses resultados estranhos dependem de eu emitir o comando lynx da linha de comando em vez de em um trabalho cron? Talvez o site esteja fazendo algum tipo de detecção e fornecendo uma página transliterada em um caso, mas não no outro? Ou o próprio lince está fazendo a transliteração de caracteres não latinos para os latinos? Entrada será apreciada.

    
por MJiller 04.11.2017 / 16:05

2 respostas

1

lynx usa as localidades atuais para determinar o conjunto de caracteres que pode usar para mostrar páginas. Esta informação provavelmente não está disponível a partir de cron , então você precisa fazer algo assim:

lynx -display_charset=UTF-8 -dump http://example.com/some/page.html

(claro, use o conjunto de caracteres no seu sistema se for diferente do UTF-8).

    
por 04.11.2017 / 16:16
1

O lynx faz a transliteração usando suas configurações do locale como uma dica. Executando em cron , é provável que a localidade seja POSIX. Eu investigaria isso primeiro.

Para a configuração do lynx, comece aqui:

por 04.11.2017 / 16:15

Tags