не в состоянии получить текстовые данные из веб-URL, используя JavaScript - PullRequest
1 голос
/ 29 мая 2019

Мне нужно извлечь текстовые данные из веб-адреса (http://www.africau.edu/images/default/sample.pdf)

Я использовал два узла_модуля.

1) Crawler-Request

  it('Read Pdf Data using crawler',function(){
        const crawler = require('crawler-request');
        function response_text_size(response){
            response["size"] = response.text.length;
            return response;
        }
        crawler("http://www.africau.edu/images/default/sample.pdf",response_text_size).then(function(response){
            // handle response

            console.log("Reponse =" + response.size);
        });

    });

Что произойдет для этого, он ничего не напечатает на консоли.

2) pfd2json / pdfparser

it('Read Data from url',function(){
        var request = require('request');
        var pdf = require('pfd2json/pdfparser');
        var fs = require('fs');
        var pdfUrl = "http://www.africau.edu/images/default/sample.pdf";
        let databuffer = fs.readFileSync(pdfUrl);
        pdf(databuffer).then(function(data){
            var arr:Array<String> = data.text;
            var n = arr.includes('Thursday 02 May');
            console.log("Print Array " + n);
        });

    });

Я могу получить доступ к данным по локальному пути, но не могу извлечь их из URL.

1 Ответ

1 голос
/ 29 мая 2019

Проблема здесь в том, что вы используете модуль fs (Файловая система) для чтения файла на удаленном сервере.

Вы также неправильно набрали модуль pdf2json, что должно выдать ошибку?

Вам требуется модуль request. Этот модуль позволит получить доступ к этому удаленному файлу. Вот один из способов сделать это:

it('Read Data from url', function () {
    var request = require('request');
    var PDFParser = require('pdf2json');

    var pdfUrl = 'http://unec.edu.az/application/uploads/2014/12/pdf-sample.pdf';

    var pdfParser = new PDFParser(this, 1);

    // executed if the parser fails for any reason
    pdfParser.on("pdfParser_dataError", errData => console.error(errData.parserError));
    // executed when the parser finished
    pdfParser.on("pdfParser_dataReady", pdfData => console.log(pdfParser.getRawTextContent()));

    // request to get the pdf's file content then call the pdf parser on the retrieved buffer
    request({ url: pdfUrl, encoding: null }, (error, response, body) => pdfParser.parseBuffer(body));
});

Это позволит загрузить удаленный файл .pdf в вашу программу.

Я бы порекомендовал посмотреть документацию pdf2json , если вы хотите сделать больше. Это просто выведет текстовое содержимое файла .pdf, когда анализатор завершит чтение данных.

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