Извлеките текст из URL, который является PDF - PullRequest
0 голосов
/ 06 июля 2018

Я хочу извлечь текст из URL. Этот URL автоматически загружает страницу в формате PDF.

import io
import requests
from bs4 import BeautifulSoup
from PyPDF2 import PdfFileReader

def extract_info_from_pdf_url(url):
    r = requests.get(url)
    f = io.BytesIO(r.content)
    reader = PdfFileReader(f)
    No_of_pages =  reader.getNumPages()


    for i in range(No_of_pages): 
        contents = reader.getPage(i).extractText().split('\n')
        print(contents)

url = "http://www.oagkenya.go.ke/index.php/reports/doc_download/887-nock-ltd"

extract_info_from_pdf_url(url)

Ответы [ 2 ]

0 голосов
/ 23 апреля 2019
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;

public class PDFreader {
    public static void main(String[] args) throws Exception

    {

        URL url = new URL("http:/....view.php?fil_Id=5515");
        byte[] response = null;

        try (InputStream in = new BufferedInputStream(url.openStream());
                ByteArrayOutputStream out = new ByteArrayOutputStream()) {

            byte[] buf = new byte[1024];
            int n = 0;
            int counter = 0;

            while (-1 != (n = in.read(buf))) {
                out.write(buf, 0, n);
                counter = counter + n;
            }
            response = out.toByteArray();
        }

        OutputStream os = new FileOutputStream("abc.pdf");
        os.write(response);
        os.close();

        File file = new File("abc.pdf");
        PDDocument document = PDDocument.load(file);
        PDFTextStripper pdfStripper = new PDFTextStripper();
        String text = pdfStripper.getText(document);
        System.out.println(text);
        document.close();

    }

}
0 голосов
/ 06 июля 2018

Ваш PDF-файл, из которого вы хотите извлечь текст, на самом деле представляет собой просто отсканированные фотографии. Поскольку PdfFileReader и другие программы чтения PDF-файлов извлекают текст на основе метаданных документа, вы не получите никаких результатов (если текст еще не встроен в PDF, вам потребуется использовать OCR для извлечения текста.) .

Для этого вы можете использовать Tesseract, Tesseract не использует ocr pdf, поэтому преобразуйте .pdf в .tiff с помощью команды convert:

convert -density 300 /path/to/my/document.pdf -depth 8 -strip -background white -alpha off file.tiff

Затем используйте tesseract для этого файла:

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