Obtenha o "conteúdo de texto" dos arquivos

5

Eu queria saber se existe uma ferramenta para raspar o conteúdo de texto de um arquivo. Basicamente eu gostaria de colocar em um pdf, documento word, arquivo compactado ou qualquer outra coisa e obter o texto que ele contém.

Existe strings que imprime sequências de caracteres imprimíveis, mas isso não funciona em muitos formatos compactados. Sua natureza "burra" também significa que muitas vezes imprime mais do que apenas o texto. Seria um bom substituto para um tipo de arquivo desconhecido.

Existe o comando pdftotext , que faz exatamente o que eu quero, mas só funciona em pdfs.

Existe uma ferramenta que funciona em vários formatos ou que une mais essas ferramentas?

Informações adicionais

Muitas pessoas mencionaram que suas ferramentas não são padronizadas. Gostaria apenas de salientar que isto está bem.

    
por Kevin Cox 04.11.2013 / 00:40

2 respostas

6

Além de strings Eu nunca vi uma ferramenta de linha de comando Unix além de grep , awk e amigos que podem analisar dados de qualquer arquivo de texto. Todas essas ferramentas pressupõem que os dados estão em formato textual.

Arquivos como PDF ou documentos do Word codificam os dados textuais em um formato binário, tornando-os inacessíveis sem o auxílio de outras ferramentas para analisá-los. Essas ferramentas são tipicamente um truque de pôneis que muitas vezes só são capazes de lidar com um ou alguns desses formatos binários de arquivos.

Você pode usar o comando file para identificar o tipo de arquivo.

Exemplo

$ file /usr/share/cups/data/default.pdf
/usr/share/cups/data/default.pdf: PDF document, version 1.5

Veja man file para saber mais sobre seu uso.

Lucene, Solar e outras ferramentas de indexação

Você pode adaptar ou encontrar uma ferramenta incluída em uma ferramenta de indexação, como Lucene (como: PDF & Documentos do MSOffice ) que podem analisar esse texto com pelo menos um grande subconjunto dos arquivos normalmente lidam diariamente. Espero que seja capaz de lidar com os formatos de arquivo PDF, Word e Libre Office para iniciantes.

Outras ferramentas

Essas ferramentas podem pelo menos ler parcialmente certos arquivos binários, então estou adicionando-os aqui apenas para que você esteja ciente deles. Eles não são abrangentes, mas podem ser úteis para você, no entanto.

por 04.11.2013 / 00:58
1

Não existe essa ferramenta de conversão (pelo menos não padrão), mas você pode encontrar alguns bons geradores ou ferramentas de visualização que vinculam os existentes (veja abaixo). Há muitos, muitos formatos de documentos, e todos esses formatos são definidos pelos aplicativos que trabalham com eles (exemplos aleatórios: PDFs, documentos do Word, planilhas ODS, apresentações do PowerPoint, documentos HTML [em que algumas cadeias não fazem parte do conteúdo] , Imagens JPG de texto, programas compilados, arquivos de banco de dados, arquivos zipados, arquivos gzipados, arquivos bzipados, a lista continua). Seria virtualmente impossível criar um programa que pudesse ler todo formato de dados de documento existente, decodificar os dados e extrair o conteúdo real.

A estratégia típica usada por um indexador de pesquisa / gerador de visualização é adivinhar o tipo de arquivo, invocar algum filtro do que pegar o texto relevante e processá-lo / visualizá-lo. Geralmente, isso é feito pelo autor, seja escrevendo um pequeno conjunto de filtros para tipos comuns por conta própria (fazendo a pesquisa para aprender sobre as especificações de formato), ou pelo aplicativo fornecendo algum tipo de estrutura de estilo de plugin extensível e deixando-a a terceiros para escrever os filtros. Muitas vezes é uma combinação de ambos.

O Nautilus usa uma combinação dessas abordagens, por exemplo. Para alguns formatos, como formatos de imagem comuns, ele pode gerar visualizações por conta própria. Para outros formatos, ele se baseia em scripts de terceiros, criados pelos autores dos aplicativos e especificados para o Nautilus no gconf, que definem vários formatos de documentos, para analisar documentos e gerar imagens em miniatura. Ele simplesmente delega a tarefa de gerar visualizações para esses scripts, que são armazenados como arquivos de imagem e exibidos pelo Nautilus.

Qualquer indexador de pesquisa encontrado funcionará com um princípio semelhante.

Você pode pesquisar algumas outras opções, incluindo, mas não se limitando a:

  • Uso do software de pesquisa existente. Aqui está uma boa lista e revisão das opções disponíveis para Linux: link (se você tiver ADICIONAR: seus três principais itens em ordem são Recoll, Beagle, Google Desktop).
  • Se você está escrevendo o seu próprio, considere escrever um que possa usar filtros já escritos.
  • Pense nos tipos de documento que você realmente deseja apoiar e escreva um script que use uma combinação de file e quaisquer ferramentas de filtro (por exemplo, pdftotext ) que funcionem.
  • Aceite o texto bruto não compactado limitado e use strings .
por 04.11.2013 / 04:00