到目前为止,我已经在网上搜索了一个没有运气的解决方案。我知道这是一个记录在案的问题,但我只是想加载一个网页而且所有的回复都是“这种情况发生了,试图在200页上进行测试”。
我试过了:
page.settings.loadImages = true;
page.settings.loadplugins = false;
我添加了``page.close()`,尽管就像我说的那样,它现在只有一个URL。
我也尝试将loadImages
设置为false。当我移除我的一行JavaScript时(例如将其替换为document.title
,它工作正常,但只要该行存在,内存使用量就会弹到1000MB,然后退出。
我唯一的目标是检查页面上是否存在某个元素。我该如何解决这个问题?我在网上找到的解决方案都没有为我工作。
有问题的代码:
var system = require('system');
var page = require('webpage').create();
page.settings.userAgent = 'Chrome/52.0.2743.116';
var url = 'http://www.example.com/';
var ending = system.args[1];
ending = encodeURIComponent(ending);
url = url + ending;
page.settings.loadImages = false;
page.settings.loadplugins = false;
page.viewportSize = { width: 1680, height: 1050 };
page.open(url, function(status) {
setTimeout(function(){
var elem = page.evaluate(function() {
return $(".primary-info")[0];
});
if(!elem){
console.log('no image found');
page.render(ending+'.png');
}
page.close();
phantom.exit();
}, 5000);
});
答案 0 :(得分:1)
不要只返回整个对象,可能有很多属性。只采取必要的措施:
var elem = page.evaluate(function() {
var data = {};
var item = $(".primary-info")[0];
data.title = item.value;
data.color = item.style.color;
return data;
});