Проблемы с кодированием при извлечении текста из файла pdf с помощью pdfplumber
Я хотел бы извлечь содержимое следующего файла PDF, но он возвращает бессмысленный результат. Я предполагаю, что это может быть связано со стороной кодирования файла, но тот же код извлечения работает для многих других файлов в той же инфраструктуре. Это не единственный файл, который не обрабатывается следующим скриптом, есть и другие случаи. Однако я привел только пример. Я понял, что если я копирую / вставляю текстовое содержимое этого файла в свой блокнот, оно также не вставляется должным образом. Вставленный текст не так уж плох, я поместил его внизу, но это тоже неприемлемо. Как мне подойти к этой проблеме? Какие-либо предложения ?
# -*- coding: utf-8 -*-
import urllib3
import pdfplumber
import io
def extract_text_from_pdf_by_url(url):
all_text = ''
http = urllib3.PoolManager()
temp = io.BytesIO()
temp.write(http.request("GET", url).data)
try: # to verify is the url has valid pdf file!
pdf = pdfplumber.open(temp)
for pdf_page in pdf.pages:
single_page_text = pdf_page.extract_text()
# TypeError: can only concatenate str (not "NoneType") to str
if single_page_text is not None:
all_text += '\n' + single_page_text
pdf.close()
except:
pass
return all_text
url = 'https://titck.gov.tr/storage/kubKtAttachments/4yM2t3s0uI33S.pdf'
text = extract_text_from_pdf_by_url(url)
print(text)
Он возвращает:
İİİıı ı İİİ İıŞİ
ıöö ç ıı ııçıı öİ ı ıçıüüışü üüğöüüıışı
ıİÖıİ
ö ıüö ıöğğ ı ç şüıııııı ş
...