scripts Perl " crawl" em toda a web , peneirar o oceano de páginas HTML para informações, e , inevitavelmente, alguns dos milhões de arquivos PDF Adobe Acrobat polvilhado em toda a Internet. Embora eles estão prontos para imprimir e atraente , do ponto de vista de um rastreador web, PDFs são uma porca um pouco mais difícil de quebrar do que páginas HTML simples, baseados em texto. Felizmente , como acontece com muitas tarefas na web, há um módulo Perl que podem ajudar a tornar a vida mais fácil : CAM :: PDF. Esta interface de programação , embora destinado principalmente para criar e manipular arquivos PDF , tem alguns utilitários que permite scripts para pesquisar seu conteúdo. Coisas que você precisa
ambiente de script Perl
CAM :: PDF módulo Perl
texto ou editor de código
arquivo PDF
Show Mais instruções
1
Instale CAM :: PDF. O utilitário cpan fornece a maneira mais fácil de fazer isso - comece cpan na linha de comando e no prompt , digite " instalar CAM :: PDF" (sem aspas)
2
Abra um editor e . iniciar o script, inserindo as seguintes linhas para iniciar o interpretador Perl e importar o módulo necessário :
# /usr /bin /perluse CAM :: PDF ;
Adicione as próximas duas linhas de processar os argumentos de linha de comando que o usuário vai passar em:
my $ arquivo = shift; my $ search = shift;
O primeiro argumento passado para o script será o nome de um PDF arquivo , eo segundo , a seqüência de pesquisa
3
Crie um novo objeto CAM :: PDF , adicionando a seguinte linha ao script: .
my $ doc = CAM :: PDF- > new ($ arquivo );
Usando o método numpages do módulo importado para definir o limite superior, criar um loop para processar cada página do documento :
foreach minha $ p ( ( 1 .. $ doc -> numpages ( ) )) {
4
Dentro do loop , adicione esta linha para obter cada página de texto a partir do arquivo PDF:
my $ str = $ doc -> getPageText ( $ p );
Adicione a próxima instrução de script para dividir o texto da página para cima em uma matriz de linhas separadas :
@ linhas = split ( /\\ n /, $ str );
Termine a declaração circuito inserindo um colchete de fechamento :
}
5
Finalmente , adicione outro loop para o script para processar cada linha da página e buscar uma correspondência para a linha de busca do usuário como uma expressão regular. Se a expressão regular retorna um jogo , este exemplo imprime a linha e número da página para stdout. No lugar das demonstrações de impressão , você deve implementar o código para processar os resultados , conforme necessário
my $ i = 0; . Foreach ( $ line @ linhas ) { + + $ i ; if ($ linha = ~ /$ busca /) {print "\\" $ pesquisa \\ "encontrado na linha $ i da página $ p \\ n"; print " $ linha \\ n \\ n" }}