Extracción / raspado PDF con textract - no imprime texto -- python campo con extract campo con pdf-scraping camp Relacionados El problema

Extracting/Scraping PDF with Textract - Doesn't print text


1
vote

problema

Español

Estoy tratando de extraer el texto en los archivos PDF Doem usando Textract. Sin embargo, cuando imprimo el texto al final del código, simplemente imprime muchos espacios vacíos. ¿Puede alguien apuntarme en dirección a lo que está pasando? (el texto no es = "", por cierto)

  import os import codecs import PyPDF2  import textract from nltk.tokenize import word_tokenize from nltk.corpus import stopwords  for filename in os.listdir('Harbour PDF'):     if '.DS_Store' == filename:         continue     filename = 'Harbour PDF/' + filename     print(filename)      pdfFileObj = open(filename,'rb')      pdfReader = PyPDF2.PdfFileReader(pdfFileObj)      num_pages = pdfReader.numPages     count = 0     text = ""      while count < num_pages:         pageObj = pdfReader.getPage(count)         count +=1         text += pageObj.extractText()       if text != "":         text = text     else:         text = textract.process(pdfFileObj, method='tesseract', language='eng')      print(text)   
Original en ingles

I am trying to extract the text in doem PDF files using Textract. However, when I print the text in the end of the code, it just prints out a lot of empty spaces. Can anyone point me in direction of what is going on? (text is not = "", by the way)

import os import codecs import PyPDF2  import textract from nltk.tokenize import word_tokenize from nltk.corpus import stopwords  for filename in os.listdir('Harbour PDF'):     if '.DS_Store' == filename:         continue     filename = 'Harbour PDF/' + filename     print(filename)      pdfFileObj = open(filename,'rb')      pdfReader = PyPDF2.PdfFileReader(pdfFileObj)      num_pages = pdfReader.numPages     count = 0     text = ""      while count < num_pages:         pageObj = pdfReader.getPage(count)         count +=1         text += pageObj.extractText()       if text != "":         text = text     else:         text = textract.process(pdfFileObj, method='tesseract', language='eng')      print(text) 
        

Lista de respuestas

0
 
vote

2 Funciones que uso a través de Python (2º One necesita Tesseract). Bueno, en realidad prefiero el Tesseract One en lugar de PDFMiner, pero efectivamente hacen lo mismo. No estoy seguro de qué está mal con su código, pero estos son equivalentes alternativos que creo.

  from PIL import Image import pytesseract import cv2 import os import subprocess  from pdfminer.converter import TextConverter from pdfminer.pdfinterp import PDFPageInterpreter from pdfminer.pdfinterp import PDFResourceManager from pdfminer.pdfpage import PDFPage  #converts pdf, returns its text content as a string def convert(fname, pages=None):     if not pages:         pagenums = set()     else:         pagenums = set(pages)      output = StringIO()     manager = PDFResourceManager()     converter = TextConverter(manager, output, laparams=LAParams())     interpreter = PDFPageInterpreter(manager, converter)      infile = open(fname, 'rb')     for page in PDFPage.get_pages(infile, pagenums):         interpreter.process_page(page)     infile.close()     converter.close()     text = output.getvalue()     output.close     return text  def to_txt(pdf_path, output_dir, name=None):     if not os.path.exists(output_dir):         os.makedirs(output_dir)     if name == None:         parts = pdf_path.split('\')         fname = parts[-1][:-4] + '.txt'         fname = fname.replace(" ", "_")         end = output_dir + fname     else:         if name[-4:] != '.txt':             name += '.txt'         end = output_dir + name     cmd = ['pdftotext', pdf_path,            end]     subprocess.call(cmd)     print('Converted')    
 

2 functions I use via python (2nd one needs tesseract). Well, I actually prefer the tesseract one instead of pdfminer, but they effectively do the same thing. Not sure whats wrong with your code, but these are alternative equivalents I believe.

from PIL import Image import pytesseract import cv2 import os import subprocess  from pdfminer.converter import TextConverter from pdfminer.pdfinterp import PDFPageInterpreter from pdfminer.pdfinterp import PDFResourceManager from pdfminer.pdfpage import PDFPage  #converts pdf, returns its text content as a string def convert(fname, pages=None):     if not pages:         pagenums = set()     else:         pagenums = set(pages)      output = StringIO()     manager = PDFResourceManager()     converter = TextConverter(manager, output, laparams=LAParams())     interpreter = PDFPageInterpreter(manager, converter)      infile = open(fname, 'rb')     for page in PDFPage.get_pages(infile, pagenums):         interpreter.process_page(page)     infile.close()     converter.close()     text = output.getvalue()     output.close     return text  def to_txt(pdf_path, output_dir, name=None):     if not os.path.exists(output_dir):         os.makedirs(output_dir)     if name == None:         parts = pdf_path.split('\\')         fname = parts[-1][:-4] + '.txt'         fname = fname.replace(" ", "_")         end = output_dir + fname     else:         if name[-4:] != '.txt':             name += '.txt'         end = output_dir + name     cmd = ['pdftotext', pdf_path,            end]     subprocess.call(cmd)     print('Converted')  
 
 

Relacionados problema

-1  El mejor idioma para extraer texto PDF y tabularlo bajo encabezados de fila [cerrado]  ( Best language to extract pdf text and tabulate it under row headers ) 
cerrado. Esta pregunta no cumple con pautas de desbordamiento de pila . Actualmente no está aceptando respuestas. ...

4  Programaticamente reemplaza el texto en PDF  ( Programmatically replace text in pdf ) 
Tengo archivos PDF con texto que debe ser reemplazado. Más específico, el texto debe ser traducido y reemplazado con la versión traducida. Es importante que e...

20  ¿Cómo funcionan los raspadores de pantalla? [cerrado]  ( How do screen scrapers work ) 
cerrado . Esta pregunta debe ser más enfocado . Actualmente no está aceptando respuestas. ...

-2  Extracción de tablas de PDF [CERRADO]  ( Extraction of tables from pdf ) 
cerrado . Esta pregunta debe ser más enfocado . Actualmente no está aceptando respuestas. ...

0  LEYERROR: '/ Contenido'  ( Keyerror contents ) 
Al intentar obtener números de un PDF, usando PYPDF2, obtengo: LEYERROR: '/ CONTENIDOS'. Aquí está el código: import PyPDF2 as pdf fhand = open('file...

0  Reconocimiento óptico de carácter de PDF de debates parlamentarios  ( Optical character recognition of pdfs of parliamentary debates ) 
Para un trabajo por contrato, necesito digitalizar muchos de los PDF de protocolo de debate plenario, de origen antiguo, escaneado, gráficos, a partir del Par...

2  Problemas con la biblioteca del tabulador en r Reconocimiento de caracteres no alfanuméricos (símbolos) en una tabla en un PDF  ( Trouble with tabulizer library in r recognizing non alphanumeric symbol charac ) 
Estoy usando la biblioteca del tabulizador en R para capturar datos de una tabla ubicada dentro de un PDF en un sitio web público ( https://www.waterboards.ca...

28  ¿Cómo puedo convertir PDF a HTML?  ( How can i convert pdf to html ) 
¿Qué buenas bibliotecas están allí, en cualquier idioma común, para convertir PDF a HTML? ...

15  Raspando las tablas de PDF grandes que abarcan en varias páginas  ( Scraping large pdf tables which span across multiple pages ) 
Estoy tratando de raspar Tablas PDF que abarcan en varias páginas . He intentado muchas cosas pero lo mejor parece ser pdftotext -layout aconsejó aquí . E...

394  Módulo de Python para convertir PDF al texto [cerrado]  ( Python module for converting pdf to text ) 
cerrado. Esta pregunta no cumple con pautas de desbordamiento de pila . Actualmente no está aceptando respuestas. ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos