Mac OS X 上性能缓慢
Slow performance on Mac OS X
我目前正在学习如何使用 NightmareJS。当我 运行 下面的代码时,我发现性能太慢了。获得输出最多需要 30 秒。我做错了什么吗?
此外,我尝试将 wait()
与选择器一起使用,但这并没有太大帮助。
我不确定这是否与我的 Internet 连接有关,但是,使用 Google Chrome 打开相同的站点并执行相同的任务比使用 Nightmare 更快.
源代码
var Nightmare = require('nightmare');
var after;
var before = Date.now();
new Nightmare({
loadImages: false
}).goto('https://www.wikipedia.org/')
.type('#searchInput', process.argv[2])
.click('input[name="go"]')
.wait()
.url(function(url) {
after = Date.now();
console.log('>>> [' + (after - before) / 1000.0 + 's] ' + url);
})
.run(function(err, nightmare) {
if (err) console.log(err);
});
输出
node n02_extract_wiki_link.js "node.js"
>>> [31.227s] https://en.wikipedia.org/wiki/Node.js
下面列出了我当前的环境。
Mac OS X 10.10.4
node v0.12.5
PhantomJS 2.0.0
nightmare@1.8.2
这对我有用:
https://github.com/segmentio/nightmare/issues/126#issuecomment-75944613
It's the socket connection between the phantomjs module and it's dependency, shoe.
You can manually edit shoe yourself. Go into node_modules/phantom/shoe/index.js and change line 8 to read
var server = sockjs.createServer({
heartbeat_delay : 200
});
我目前正在学习如何使用 NightmareJS。当我 运行 下面的代码时,我发现性能太慢了。获得输出最多需要 30 秒。我做错了什么吗?
此外,我尝试将 wait()
与选择器一起使用,但这并没有太大帮助。
我不确定这是否与我的 Internet 连接有关,但是,使用 Google Chrome 打开相同的站点并执行相同的任务比使用 Nightmare 更快.
源代码
var Nightmare = require('nightmare');
var after;
var before = Date.now();
new Nightmare({
loadImages: false
}).goto('https://www.wikipedia.org/')
.type('#searchInput', process.argv[2])
.click('input[name="go"]')
.wait()
.url(function(url) {
after = Date.now();
console.log('>>> [' + (after - before) / 1000.0 + 's] ' + url);
})
.run(function(err, nightmare) {
if (err) console.log(err);
});
输出
node n02_extract_wiki_link.js "node.js"
>>> [31.227s] https://en.wikipedia.org/wiki/Node.js
下面列出了我当前的环境。
Mac OS X 10.10.4
node v0.12.5
PhantomJS 2.0.0
nightmare@1.8.2
这对我有用:
https://github.com/segmentio/nightmare/issues/126#issuecomment-75944613
It's the socket connection between the phantomjs module and it's dependency, shoe.
You can manually edit shoe yourself. Go into node_modules/phantom/shoe/index.js and change line 8 to read
var server = sockjs.createServer({ heartbeat_delay : 200 });