Skip to content

Instantly share code, notes, and snippets.

@eng-rodrigocunha
Last active March 12, 2023 01:58
Show Gist options
  • Save eng-rodrigocunha/5705278eaebc6a6b3fd9e6b82d4e50c9 to your computer and use it in GitHub Desktop.
Save eng-rodrigocunha/5705278eaebc6a6b3fd9e6b82d4e50c9 to your computer and use it in GitHub Desktop.
Realiza scrapping na Carteira Nacional de Vacinação Digital ou no Certificado Nacional de Vacinação Covid-19 emitido através do ConecteSUS para identificar quantas doses de COVID-19 foram administradas
#!pip install pdfminer.six
import io
from pdfminer.high_level import extract_text
doses = ["Reforço", "Dose Adicional", "2/2", "1/2"]
# abrir o arquivo PDF
with open(r'E:\DOCUMENTOS PESSOAIS\Carteira Nacional de Vacinação Digital_4_DOSE.pdf', 'rb') as f:
# extrair o texto do PDF
text = extract_text(f)
# print(text)
num_doses = 0
doses_recog = []
# quebra texto em linhas
lines = text.split("\n")
for index, line in enumerate(lines):
for dose in doses:
# verifica se há uma próxima linha
if (index + 1) < len(lines):
# cria uma linha temporária, juntando a linha atual com a próxima
# (foi necessária essa etapa em razão do "Dose Adicional" em linha quebrada)
line_temp = f"{line}{lines[index + 1]}"
if (line == dose) & (dose not in doses_recog):
doses_recog.append(dose)
# print(f"{'='*5} {line} == {dose} {'='*5}")
# print(f"{line}" == dose)
num_doses += 1
elif (line_temp == dose) & (dose not in doses_recog):
doses_recog.append(dose)
# print(f"{'='*5} {line_temp} == {dose} {'='*5}")
# print(f"{line_temp}" == dose)
num_doses += 1
print("Número de doses administradas: ", str(num_doses))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment