Articles of 噩梦

dynamic分页与噩梦/电子(页面刮)

我正在尝试用Nightmare / Electron来抓取dynamic分页网站。 我没有看到一种方法来执行一个do …直到与噩梦function或链接评估调用与逻辑的方式。 下面是一个简单的代码示例,仅仅使用Google语句并从第1页返回结果hrefs。我希望代码能够在结果中的每个页面上继续。 var Nightmare = require('nightmare'); var vo = require('vo'); vo(function* () { var nightmare = Nightmare({ show: true }); var links = yield nightmare .goto('http://www.google.com') .wait('input[title="Search"]') .click('input[title="Search"]') .type('input[title="Search"]', 'Anequim Project') .click('input[name="btnK"]') .wait(600) .evaluate(function(){ var linkArray = []; var links = document.querySelectorAll('h3.r a'); for (var i = 0; i < links.length; […]

我怎样才能将callback传递给我传递给“vo”库的生成器?

我想了解callback是如何工作的,所以我创build了一个函数,并且传递了第二个名为“callback”的参数,我使用“callback(arr)”在函数结尾处调用该函数。 不过,我收到一个错误,说:“callback是不是一个function”? 你能告诉我我做错了什么吗? UPDATE vo是一个nodejs库,它使用一个生成器函数*()并运行所有的yield。 这基本上是一个处理asynchronous代码,lesscallback的方法(是的,我知道我也使用了callback,但这是一个很好的select)。 一个更受欢迎的图书馆,做同样的事情是合作。 链接到vo: https : //github.com/matthewmueller/vo var Nightmare = require('nightmare'); var vo = require('vo'); function* MyFunction(query, callback) { arr = []; for (i = 0; i < 1; i++) { arr.push(yield Nightmare({ show: true }).goto(`http://google.com`) .inject('js', 'jquery-3.1.0.js') .evaluate(() => { var title; title = 1 extend = 2 var img; […]

通过Nightmare.js在linux服务器上无线运行电子(primefaces壳)

我正在构build一个刮板,使JS单页应用程序容易抓取。 在PhantomJS (内存泄漏,过时的webkit,不死的进程,以及许多其他问题)之后,我决定改用NightmareJS ,它可以做同样的事情,但是使用Electron 。 电子有很多优点(使用最新的铬 ,速度要快得多),但它需要一台X服务器才能运行。 因为我需要在Ubuntu服务器下工作,所以我遵循了这个要求 。 现在我有一个很棒的EC2实例,一切准备好运行一个无头电子 xvfb-run electron 关键是我需要通过nightmareJS(我将在一个node.js服务器脚本中使用)来运行。 我想知道如何将parameter passing给恶梦,以便通过svfb启动电子

如何在google appengine上为node.js运行nightmare.js

梦魇和电子没有在无头Linux服务器上运行着名的问题 。 官方电子文档build议使用xvfb来伪造显示。 他们build议为travis使用这个.yml文件。 插件: 易于: 包: – xvfb 安装: – export DISPLAY =':99.0' – Xvfb:99 -screen 0 1024x768x24> / dev / null 2>&1& 题 如何将上面的代码用于node.js的google appengine的app.yaml文件中 我试图用它,因为它是,但glcoud抛出一个错误,即addon是无效的命令。 差距官方文档没有任何类似的命令。 任何build议如何我们可以运行恶梦和电子谷歌appengine为node.js ..?