PDFMiner не анализирует более 1 страницы - PullRequest
0 голосов
/ 30 сентября 2018

Я использую PDFMiner6 с Python 3.5.Это намного лучше, чем PyPDF2 (медленнее, но точнее и не выдает кучу букв, которые не разделены пробелами).Я пытался разобрать этот документ:

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2963791/ (Вы можете скачать PDF бесплатно с сайта NIH).

Я использовал этот код (это часть большого паука,но остальная часть кода не имеет отношения к этому вопросу):

import io
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage

class PDFMiner6(object):
    def __init__(self):
        pass

    def PdfFileReader(self, fp):
        text = []
        rsrcmgr = PDFResourceManager()
        retstr = io.StringIO()
        codec = 'utf-8'
        laparams = LAParams()
        device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
        interpreter = PDFPageInterpreter(rsrcmgr, device)
        password = ""
        maxpages = 0
        caching = True
        pagenos = set()

        for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password, caching=caching, check_extractable=True): 
            interpreter.process_page(page)
            output = retstr.getvalue()
            text.append(output)

        fp.close()
        device.close()
        retstr.close()
        return text

Отлично анализирует первую страницу, затем останавливается.Остальная часть документа не анализируется.

Я тестировал тот же документ, используя PyPDF2, он анализирует весь документ, но выводит мусор без пробелов (поэтому я переключился на PDFMiner6).Так что я уверен, что дело не в том, что весь документ не читается, а в том, что код разбирает его.Что не так?

РЕДАКТИРОВАТЬ: Я проверил его на разных PDF-файлах с разными результатами - некоторые полностью анализируются, а другие останавливаются на первой странице.Это расстраивает, так как PDFMiner6 является лучшим парсером по сравнению с PyPDF2.

Может ли кто-нибудь помочь?

1 Ответ

0 голосов
/ 19 декабря 2018

Убедитесь, что PDF открывается программой просмотра PDF, а не веб-браузером.У меня была такая же проблема, и вот как я ее исправил.

Похоже, pdfminer будет просматривать PDF-файл, открываемый веб-браузером, как одну страницу.Поэтому вам нужно убедиться, что он открывается программой просмотра PDF, чтобы pdfminer распознал, что в PDF есть более 1 страницы.

...