1. Extraindo texto
Praticamente todo mundo já passou pela situação de precisar de informações de um documento PDF, seja um relatório contábil, uma pesquisa ou até mesmo aquele e-book favorito. Mas o que fazer se precisar extrair dados automaticamente ao invés de copiar manualmente? É aqui que o Python e sua incrível biblioteca PyPDF2 entram em cena.
Passos principais para extração de texto
Para extrair texto de um PDF com sucesso, siga alguns passos simples:
- Ler o arquivo PDF.
- Fazer parsing do conteúdo do PDF.
- Extrair o texto para análise posterior.
2. Ler e fazer parsing de arquivos PDF
Vamos ver como abrir e ler um documento PDF no Python. Primeiro, precisamos importar o PyPDF2:
import PyPDF2
Agora, vamos abrir o documento PDF. Suponha que temos um arquivo sample.pdf que queremos analisar. Vamos carregá-lo e descobrir quantas páginas ele possui.
Carregar o arquivo PDF
# Abrindo o arquivo PDF
with open("sample.pdf", "rb") as pdf_file:
# Criando o objeto PDF Reader
pdf_reader = PyPDF2.PdfReader(pdf_file)
# Obter o número total de páginas
num_pages = len(pdf_reader.pages)
print(f"Número total de páginas no documento: {num_pages}")
Extraindo texto
Agora que o documento PDF está aberto, vamos extrair o texto dele. Para isso, precisamos:
PdfReaderabre o arquivo PDF para leitura.- Usamos um loop
forpara iterar por todas as páginas e chamarextract_text()para extrair o texto. - O texto extraído é salvo na variável
texte pode ser exibido ou processado.
Eis um exemplo de como isso pode ser feito:
import PyPDF2
# Abrindo o arquivo PDF
with open("sample.pdf", "rb") as pdf_file:
pdf_reader = PyPDF2.PdfReader(pdf_file)
text = ""
# Extraindo texto de cada página
for page_num in range(len(pdf_reader.pages)):
page = pdf_reader.pages[page_num]
text += page.extract_text() + "\n"
print(text)
Extraindo texto de páginas específicas
E se precisarmos de texto apenas de uma página específica? Por exemplo, suponha que queremos extrair texto apenas da terceira página. Isso é feito assim:
import PyPDF2
with open("sample.pdf", "rb") as pdf_file:
pdf_reader = PyPDF2.PdfReader(pdf_file)
page = pdf_reader.pages[2] # Extrair texto da terceira página (índice 2)
text = page.extract_text()
print(text)
Esse exemplo permite extrair texto apenas da terceira página, o que pode ser útil se o documento tiver muitas páginas e você quiser limitar o processamento. O PyPDF2 utiliza a numeração de páginas começando do índice 0.
3. Automatizando o processamento de texto a partir de PDF
Depois de extrair texto de um PDF, ele pode ser analisado e processado para uma análise mais aprofundada de dados. PyPDF2 permite automatizar esse processo, o que é especialmente útil ao lidar com grandes volumes de documentos.
Extraindo e salvando texto em um arquivo separado
Para facilitar a análise posterior, é possível salvar o texto extraído em um arquivo de texto. Isso simplifica seu processamento futuro.
import PyPDF2
# Abrindo o arquivo PDF
with open("sample.pdf", "rb") as pdf_file:
pdf_reader = PyPDF2.PdfReader(pdf_file)
text = ""
for page_num in range(len(pdf_reader.pages)):
page = pdf_reader.pages[page_num]
text += page.extract_text() + "\n"
# Salvando o texto extraído em um arquivo
with open("extracted_text.txt", "w", encoding="utf-8") as text_file:
text_file.write(text)
Processamento e análise do texto extraído
Depois de extrair o texto, ele pode ser analisado usando Python. Para isso, frequentemente utilizamos bibliotecas como re (expressões regulares), nltk (Natural Language Toolkit) ou pandas.
Contagem de palavras e busca por frases-chave
Suponha que temos um arquivo de texto extracted_text.txt, e queremos contar o número de palavras ou frases específicas no documento.
import re
# Abrindo o texto extraído
with open("extracted_text.txt", "r", encoding="utf-8") as text_file:
text = text_file.read()
# Procurando e contando palavras-chave
keywords = ["relatório", "dados", "análise"]
keyword_counts = {keyword: len(re.findall(keyword, text, re.IGNORECASE)) for keyword in keywords}
print("Frequência de palavras-chave:", keyword_counts)
Aqui:
- Abrimos o texto salvo.
- Usamos expressões regulares para contar palavras-chave (ignorando maiúsculas/minúsculas).
- Obtemos o número de ocorrências de cada palavra-chave.
4. Vantagens e limitações do PyPDF2
Vantagens:
- Fácil de usar para extração básica de texto e processamento de páginas.
- Suporte para operações principais: leitura de texto, combinação e separação de documentos.
- Fácil integração com outras bibliotecas Python.
Limitações:
- O PyPDF2 nem sempre extrai texto corretamente de PDFs complexos com formatos multi-níveis, tabelas e imagens.
- Não suporta extração direta de imagens e tabelas.
- Não lida com arquivos criptografados ou protegidos por senha (embora seja possível tentar remover a proteção caso a senha seja conhecida).
GO TO FULL VERSION