无法使用javascript从web url获取文本数据
我需要从web url()中提取文本数据 我使用了两个节点的模块 1)爬虫程序请求无法使用javascript从web url获取文本数据,javascript,selenium,protractor,Javascript,Selenium,Protractor,我需要从web url()中提取文本数据 我使用了两个节点的模块 1)爬虫程序请求 it('Read Pdf Data using crawler',function(){ const crawler = require('crawler-request'); function response_text_size(response){ response["size"] = response.text.length;
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);
});
});
it('从url读取数据',函数(){
var请求=要求(“请求”);
var pdf=require('pfd2json/pdfparser');
var fs=需要('fs');
变量pdfUrl=”http://www.africau.edu/images/default/sample.pdf";
让databuffer=fs.readFileSync(pdfUrl);
pdf(数据缓冲)。然后(函数(数据){
var arr:Array=data.text;
var n=包括(“5月2日星期四”);
console.log(“打印数组”+n);
});
});
- 失败:enoint:没有此类文件或目录,打开“”
我可以从本地路径访问数据,但无法从url提取数据。这里的问题是,您正在使用
fs
模块(文件系统)读取远程服务器上的文件
您还错误地输入了pdf2json
模块,这会给您带来一个错误吗
您确实需要请求
模块。此模块将使访问远程文件成为可能。有一种方法可以做到这一点:
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文件成为可能
如果你想做得更多,我建议你看看。当解析器完成读取数据时,这将只输出.pdf文件的文本内容。我如何从该pdf中获取所有文本?@sailxor我需要做什么?我需要console.log中该pdf中的所有文本。我如何打印该文本?@dhrusoni我已更新了我的答案。这将简单地将pdf文件内容记录在控制台中。如果你想对这个模块做更多的工作,你应该看看文档:)它没有在console.log上打印任何东西,它只是通过了所有的测试用例。我编辑了我的代码,我只是把console.log放在最后一行,它工作得很好。。。