как читать pdf файл построчно, а также в паре ключ-значение, используя python - PullRequest
0 голосов
/ 23 сентября 2019
import scrapy
from pdfminer.layout import LAParams
from pdfminer.converter import  PDFPageAggregator
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfpage import PDFPage
from pdfminer.layout import LTTextBoxHorizontal
from io import StringIO
from pdfminer.pdfinterp import PDFPageInterpreter
import io

class testPdf(scrapy.Spider):
    name='testPdf'
    def start_requests(self):
        url="http://webapps.rrc.texas.gov/CMPL/publicSearchAction.do?packetSummaryId=214303&formData.methodHndlr.inputValue=loadPacket&formData.hrefValue=%257C1007%253D0&searchArgs.paramValue=%257C0%253D8%252F1%252F2019%257C1%253D8%252F13%252F2019%257C2%253D02%257C11%253D255%257C17%253DN%257C18%253DN%257C19%253DN%257C21%253DN&pager.paramValue=%7C1%3D1%7C2%3D10%7C3%3D63%7C4%3D0%7C5%3D7%7C6%3D10&pager.offset=&publicUser="
        yield scrapy.Request(url=url, callback=self.parse)

    def parse(self,response):

        document = open('G-1 10.pdf', 'rb')
        doc=list(document)

        # print('Document:%s'%doc)


        #Create resource manager
        rsrcmgr = PDFResourceManager()
        # Set parameters for analysis.
        laparams = LAParams()
        # Create a PDF page aggregator object.
        device = PDFPageAggregator(rsrcmgr, laparams=laparams)
        interpreter = PDFPageInterpreter(rsrcmgr, device)

        for page in PDFPage.get_pages(document):

            interpreter.process_page(page)
            # receive the LTPage object for the page.
            layout = device.get_result()
            print('Layout:%s'%layout)
            for element in layout:
                if isinstance(element, LTTextBoxHorizontal):
                    with open('Layout 10.csv','a+') as f:
                        f.write(element.get_text().replace(',',' '))
                    print(element.get_text())

Я использовал приведенный выше код, но не получал данные построчно, а также в паре ключ-значение. Введите описание изображения здесь, загруженное изображение говорит, что данные читаются построчно, но после этого значения все заголовки заголовка передаются первыми.всего заголовка, который не может прочитать данные

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...