Node.js 使用「;窗口。仅加载“;在幻影中
我正在通过Node.js 使用「;窗口。仅加载“;在幻影中,node.js,phantomjs,Node.js,Phantomjs,我正在通过npm-phantom模块使用PhantomJS从基于AJAX的页面中抓取数据。有时,当phantom开始DOM遍历时,数据尚未加载。如何在页面中插入类似window.onload=function(){…}的内容。评估?它返回一个函数,但不是数据 var phantom = require('phantom'); exports.main = function (url, callback) { phantom.create(function (ph) {
npm-phantom
模块使用PhantomJS从基于AJAX的页面中抓取数据。有时,当phantom开始DOM遍历时,数据尚未加载。如何在页面中插入类似window.onload=function(){…}
的内容。评估?它返回一个函数,但不是数据
var phantom = require('phantom');
exports.main = function (url, callback) {
phantom.create(function (ph) {
ph.createPage(function (page) {
page.open(pref + url, function (status) {
page.evaluate(function () {
// here
var data = {};
data.one = document.getElementById("first").innerText;
data.two = document.getElementById("last").innerText;
return data;
},
function (res) {
callback(null, res);
ph.exit();
});
});
});
});
}
在我找到的PhantomJSAPI页面上,它是如何应用的。page.open(url,function(status){…})
只是
page.onLoadFinished = function(status){...};
page.open(url);
您可以找到以下报价:
另请参阅,以获取onLoadFinished回调的备用钩子
因为这是一个基于AJAX的页面,所以需要等待数据出现。您只能通过反复检查页面的特定部分来实现这一点
您可以在phantomjs安装的examples目录或中找到一个示例。这可能也适用于通过npm phantom的phantomjs
在您的情况下,这将如下所示(缩写):
page.open(url,函数(状态){…})
只是
page.onLoadFinished = function(status){...};
page.open(url);
您可以找到以下报价:
另请参阅,以获取onLoadFinished回调的备用钩子
因为这是一个基于AJAX的页面,所以需要等待数据出现。您只能通过反复检查页面的特定部分来实现这一点
您可以在phantomjs安装的examples目录或中找到一个示例。这可能也适用于通过npm phantom的phantomjs
在您的情况下,这将如下所示(缩写):