Я пытался извлечь дату из финансового документа PDF. условия: 1. Дата должна быть выбрана на 1-й или 2-й странице PDF-файла, 2. Пример даты: МЕСЯЦЫ, ЗАКОНЧИВШИЕСЯ 30 ИЮНЯ 2018
Я попытался выбрать дату с помощью re.search (), например:re.search ("\ bended \ b", a [0]). start ()
import re
import io,os
import re
import datefinder
from pdfminer.converter import TextConverter
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfpage import PDFPage
def extract_text_by_page(pdf_path):
with open(pdf_path, 'rb') as fh:
for page in PDFPage.get_pages(fh, caching=True, check_extractable=True):
resource_manager = PDFResourceManager()
fake_file_handle = io.StringIO()
converter = TextConverter(resource_manager, fake_file_handle)
page_interpreter = PDFPageInterpreter(resource_manager, converter)
page_interpreter.process_page(page)
text = fake_file_handle.getvalue()
yield text
# close open handles
converter.close()
fake_file_handle.close()
a=[]
for page in extract_text_by_page("C:/Users/gibin_mathew/PycharmProjects/ML/Doc_downloader/Repo/424359084.pdf"):
page=page.lower()
a.append(page)
try:
b = re.search("\bended\b", a[0]).start()
except:
b = re.search("\bended\b", a[1]).start()
date = a[0][b + 6:b + 23]
matches = list(datefinder.find_dates(date))
if len(matches) > 0:
date = matches[0]
print(date)
Но я получаю сообщение об ошибке: AttributeError: объект 'NoneType' не имеет атрибута 'start'
В некоторых файлах PDF будет более 2 страниц, а в некоторых - только одна страница.