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