Я пытаюсь извлечь информацию из PDF с помощью пакета PDFQuery. Информация не всегда находится в одном и том же месте, поэтому мне нужно иметь тег запроса. Сначала я написал функцию:
def clean_text_data(text):
return text.split(':')[1]
Затем я написал функцию для извлечения текста:
Date = clean_text_data(pdf.pq('LTTextLineHorizontal:contains("Date")').text())
Проблема, однако, заключается в том, что (по некоторым причинам) почти все данные находятся на следующем «LTTextHorizontal».
XML выглядит так:
<LTTextLineHorizontal bbox="[58.501, 377.094, 78.501, 385.094]" height="8.0" width="20.0" word_margin="0.1" x0="58.501" x1="78.501" y0="377.094" y1="385.094"><LTTextBoxHorizontal bbox="[58.501, 377.094, 78.501, 385.094]" height="8.0" index="39" width="20.0" x0="58.501" x1="78.501" y0="377.094" y1="385.094">Date: </LTTextBoxHorizontal></LTTextLineHorizontal>
<LTTextLineHorizontal bbox="[107.249, 377.334, 147.281, 385.334]" height="8.0" width="40.032" word_margin="0.1" x0="107.249" x1="147.281" y0="377.334" y1="385.334"><LTTextBoxHorizontal bbox="[107.249, 377.334, 147.281, 385.334]" height="8.0" index="40" width="40.032" x0="107.249" x1="147.281" y0="377.334" y1="385.334">02/26/2020 </LTTextBoxHorizontal></LTTextLineHorizontal>
Здесь Дата 26.02.2020, но она сразу же указана в поле. Как создать функцию для извлечения следующего поля?