问题标签 [spookyjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
923 浏览

phantomjs - 如何在每次测试之间完美隔离和清除环境?

我正在尝试使用 CasperJS 连接到 SoundCloud。有趣的是,一旦您登录并稍后重新运行登录功能,之前的登录仍然有效。在继续之前,这里是代码:

如果您至少运行此代码两次,您应该会看到出现以下错误:

如果您分析日志,您将第二次看到,您被重定向到https://soundcloud.com/stream,这意味着您已经登录。

我做了一些研究来清除每个测试之间的环境,但似乎以下几行并不能解决问题。

从技术上讲,我真的很想了解这里发生的事情。也许 SoundCloud 构建了一个系统来在服务器端也存储一些变量。在这种情况下,我必须在登录前注销。但我的问题是我如何才能完美地隔离和清除每次测试之间的所有内容?有人知道如何在每次测试之间使环境无符号吗?

0 投票
1 回答
218 浏览

javascript - 如何在 SpookyJS 脚本完成后响应请求?

我需要定期登录并从特定站点抓取一些数据。我编写了一个在 Heroku 上运行的 CasperJS 脚本来处理它。

这是我想要做的:

然后,在诡异脚本的最后一步:

不幸的是,由于某种原因似乎不可能,因为传递给的函数scrapeStuff没有在.then(). (找不到变量:回调)相反,我必须使用this.emit()和监视它spooky.on- 您可以在此处查看如何完成此操作的示例

使用 emit 的问题是我想根据请求接收抓取页面的 HTML。所以我想访问/scrape,然后在它工作时等待 10 秒并接收页面,而不是调用它,假设它成功并请求另一个 URL 以最终获取 HTML。

这可以用 SpookyJS 完成吗?也许有更好的方法直接使用 CasperJS。

0 投票
0 回答
130 浏览

node.js - 如果 spooky.then() 中有任何非英文字符,SpookyJS 会挂起

如果 spooky.then 函数中有任何国际字符,SpookyJS 就会挂起。

这个问题有什么解决方法吗?

0 投票
1 回答
621 浏览

node.js - 如何在 SpookyJS 中注入脚本?

我正在尝试在我的 SpookyJS 程序中注入punycode脚本。但它不起作用。

我在控制台输出中看不到 x 值。

知道为什么它不起作用吗?

0 投票
1 回答
740 浏览

node.js - reducing phantomjs/casperjs/spookyjs memory usage in infinte loop

I'm trying to scrape a page that uses infinite scroll using phantomjs casperjs and spooky. It is supposed to continue clicking the more button and taking the new links from the results until its stopped manually. The script however starts using more and more memory until it crashes. I wrote the following script, is there a way to optimise it so it won't use as much memory:

0 投票
1 回答
152 浏览

xpath - 所有 XPath 在 CasperJS 中都返回一个不存在的错误?

为了清楚起见,我使用的是 SpookyJS,它是一个允许无头 CasperJS 的库。

我可以在所有其他页面上单击并选择其他 XPath,问题仅在特定页面上,页面加载完美,但所有 XPath 都返回此错误。

无法在不存在的选择器上调度 mousedown 事件

我在函数尝试单击 xPath 之前截取了一个屏幕截图,屏幕截图显示页面已完美加载。

如果我尝试使用该waitForSelector函数,我会收到超时错误,我在不同的页面上尝试了不同的 XPath,但它们都不起作用。

这是我在 CoffeeScript 中的代码,不要介意把spooky.then它想象成casper.then

我感兴趣的表在 iframe 内。

0 投票
1 回答
113 浏览

javascript - 无法加载与 spookyjs 位于同一父 node_modules 目录中的 casperjs 模块

我只在我的项目的 node_modules 文件夹中安装了 spookyjs,但我只能在使用全局(-g)标志安装 casperjs 时成功执行我的脚本(或包含的示例),而不是当我将它安装在与 spookyjs 相同的节点模块。

是否有任何我可能在这里忽略的配置或步骤?谢谢!

0 投票
1 回答
372 浏览

node.js - SpookyJS 在 Meteor 中使用时没有 Start 方法

我有一个奇怪的错误,在过去的几个小时里找不到它的原因......

我有一个流星应用程序,它可以抓取一些网页以获取信息,只要我对静态页面使用 reuqest 和cheerio,一切正常,但现在我有一个动态站点,我想为此使用 phantomjs、casperjs 和 spookyjs,但是这里我遇到了一些错误......我的代码如下,我在开始时导入了 npm 模块:

稍后我想使用 spooky 来抓取一些网页:

但是,一旦我调用该方法,我就会收到以下错误消息:

我做错事了,我不知道为什么它不工作......我试图验证我的应用程序中是否正确安装了 spookyjs 和 phantomjs,但这对于使用它们的人来说并不像听起来那么容易首次...

0 投票
0 回答
165 浏览

javascript - spookyjs 停止运行而没有错误

我正在构建一个登录网站并访问数组中列出的大量页面的工具。每次我在访问第 36 个链接时运行这个 CasperJS 似乎都会挂起。我尝试删除第 36 个链接,但它只是挂在下一个链接上。

会不会是内存问题?当 CasperJS 在调试日志中挂起时,没有错误。当我在服务器上运行 top 时,我看不到任何 phantomJS 进程正在运行。

调试日志

0 投票
0 回答
79 浏览

meteor - 从 SpookyJs 获取一个数组到 Meteor

经过大量的努力,我的 SpookyJS 脚本可以正常工作,并且我得到了战利品,我想用一组值在 Meteor 应用程序中查询我的 Collection,但是我遇到了一个大问题。

我找不到从 spooky 中调用任何 Meteor 特定方法的方法......

所以我的代码对于 spooky.on 函数是这样的:

console.log 给了我想要的结果:

我需要的是一种调用 Meteor.method 的方法,将课程作为我的参数,或者在 spookyjs 完成它的工作后访问当前 Meteor.method 中的数组的方法(遗憾的是,我不知道如何检查 spooky 是否是完成的)

我的最后一个想法是给 Meteor.method 一个回调函数并将数组存储在会话中或其他东西中,但这听起来像极糟糕的设计,我希望有更好的方法。

我为我的小幽灵感到非常自豪,所以任何帮助它在终点线上最后几块的帮助都会非常感激。