我正在使用PhantomJS来抓取一些数据
TypeError: null is not an object (evaluating 'a[i].innerHTML')
通过childNodes到控制台的第一个循环工作 - 它将每个子节点打印到控制台
然而,第二个循环似乎不起作用 - 它只打印第一个值并显示错误{{1}}
这里有什么问题?
答案 0 :(得分:2)
根据PhantomJS docs,page.evaluate()
的返回值必须是JSON可序列化的。我猜想PhantomJS的DOM节点的内部表示不是。
如果你这样做了(在page.evaluate()
的回调函数内)?
root.a = page.evaluate(function (el, i) {
var element = document.getElementsByClassName('parameterfull')[0];
var children = Array.prototype.slice.call(element.childNodes);
var temp = children.map(function(node) { return node.innerHTML });
for (i = 0; i < temp.length; i++) {
console.log(temp[i])
}
return temp;
});