Модуль Slate извлекает текст из некоторых PDF-файлов, но случайно не работает - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь извлечь текст из другого файла 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 не работает над этим.

...