使用X射线和X射线幻像抓取动态页面内容时出现致命错误

时间:2015-12-20 12:44:26

标签: node.js web-scraping x-ray

当我在节点上运行app.js时,我在命令行中收到此错误:

FATAL ERROR: v8::HandleScope::CreateHandle() Cannot create a handle without a HandleScope
Abort trap: 6

这就是app.js的样子:

var phantom = require('x-ray-phantom');
var Xray = require('x-ray');
var fs = require('fs');

x = new Xray().driver(phantom());;
x('http://www.bbc.co.uk/news', '.most-popular__list panel-read li', [{
  content: ''
}])(function (err, results) {
  fs.writeFile('results.json', JSON.stringify(results, null,  '\t'));
})

我的package.json

{
  ...
  "dependencies": {
    "phantomjs": "^1.9.19",
    "x-ray": "^2.0.2",
    "x-ray-phantom": "^1.0.1"
  }
  ...
}

我的节点版本是v5.3.0,Npm版本是3.3.12,Phantomjs版本是1.9.8。我在Mac El Capitan 10.11.1

1 个答案:

答案 0 :(得分:0)

检查是否有效:

x = new Xray().driver(phantom({ dnodeOpts: { weak: false } }));

我使用phantom代替x-ray-phantom,我遇到了同样的问题。似乎模块node-weak已损坏(https://github.com/TooTallNate/node-weak/issues/65),并且绕过此模块this link suggests解决了我的问题。