Я пытаюсь извлечь текст из другого файла pdf, используя модуль slate
в python.
Сначала я построил простую функцию:
#Define function that uses SLATE to extract text from PDF
def extract_url(url):
# Download PDFs using requests
r = requests.get(url, allow_redirects=True)
# Account for passworded pages
soup = BeautifulSoup(r.content)
# Giving the file a unique name in the Assets folder
filename = "../assets/Test_PDFs/" + url.rsplit('/', 1)[-1] #regex to obtain last part of url
# Save file on hard drive
open(filename, 'wb').write(r.content)
# Open file and save all contents to variable "doc"
with open(filename, "rb") as f:
# Use SLATE module to extract text from PDF
doc = slate.PDF(f)
# Show first page of extraction
return doc[0]
It прекрасно работает для некоторых URL-адресов, таких как этот, где мы успешно извлекаем:
url_2 = 'https://repository.nie.edu.sg/bitstream/10497/1605/7/RoshanDeenG-PHD_Abstract.pdf'
extract_url(url_2)
Out:
'Author \nTitle \n\nInstitute \n\nYear \nSupervisor \n\nRoshan Deen G. \nStudies of new piperazine-based "stimuli" responsive polymers and \nhydrogels \nThesis (Ph.D.) National Institute of Education, Nanyang Technological \nUniversity \n2000 \nGan, Leong-Huat \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\x0c'
Но для следующего URL ... ничего не извлекает со страницы. Выводит странную строку.
url_1 = 'https://gupea.ub.gu.se/bitstream/2077/17128/1/gupea_2077_17128_1.pdf'
extract_url(url_1)
Out:
' \n\x0c'
Примечание. У меня нет проблем с просмотром обоих PDF-файлов в Acrobat. Я даже пробовал использовать функцию распознавания текста в Acrobat, и она работает с "неудачным файлом". Не совсем уверен, почему Slate не работает над этим.