我目前正在构建一个离子应用程序,其功能之一是抓取网页的某些元素并将这些元素推送到Firebase(稍后将在另一种情况下显示)。 我目前正在苦苦挣扎:-)
基本上,旅程是这样的: 1-用户在应用程序上通过Facebook登录 2-用户浏览网页(通过应用程序上的iframe)。 3-用户点击顶部菜单上的按钮(位于iframe上方),此按钮将触发我尝试编写的scrapeandpush函数。
我已经在服务器端测试了此功能,并尝试将其集成到我的ionic应用程序中,但是当我使用cheerio时,对于要实现的功能的可行性我持怀疑态度。
基本上,我不能使用require导入以前通过npm安装的模块request和cheerio。 当我触发以下功能时,在控制台中出现以下错误:ReferenceError:未定义
我尝试以多种不同的方式导入需求,但不确定是否可以在离子项目中使用它。
prod.scrapeAndPush = function (uid) {
const request = require('request');
const cheerio = require('cheerio');
var database = firebase.database();
var ref = database.ref('productspushed'+'/'+ uid);
request('here_comes_the_url_the_user_is_currently_navigating_on', function (error, response, html) {
if (!error && response.statusCode == 200) {
const $ = cheerio.load(html);
$('li.productList-item').each((i, element) =>
{
const title = $(element).find('p.productTile-title').text();
const price = $(element).find('p.product-price--tile').eq(0).text().replace(/€/, '');
const url = $(element).find('a.js-productTile-link').attr('href');
var data = {title: title,
price: price,
url: url,
};
ref.push(data);
});
}
});
setTimeout((function() {
return process.kill(process.pid);
}), 1500);
};
我的问题是: 有没有办法调整我的代码以获得预期的结果?
如果没有,有人可以给我一个关于如何重写我的函数的提示,以便使用另一个与ionic更兼容的库来刮页面的方法吗?
如果您能给我一个提示,我将非常感激。
一切顺利。
谢谢。