问题标签 [casperjs]

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 回答
3880 浏览

php - 使用 Phantomjs 进行屏幕抓取,结果存储在 MYSQL 中

我正在寻找这个网站:http ://www.machinerytrader.com/list/list.aspx?ETID=1&catid=1002

我最初尝试使用 PHP 来执行此操作,但发现正文 html 已加密。所以看起来这个 html 最好使用像 phantomjs 这样的无头 webkit 来访问。

我的问题是一个普遍的问题:在 PhantomJS 中抓取这些数据然后将这些数据存储在 MySQL 中的最佳方法是什么?

我没有在网上看到任何这种转变的例子,所以没有什么可做的。

更新:

经过一番阅读,我认为使用 CasperJS 及其下载功能在本地存储原始 html 并稍后使用 PHP 解析它可能是有意义的......但这种方法非常迂回......

0 投票
1 回答
1347 浏览

phantomjs - 在 PhantomJS 中检索 URL,而不是通过客户端

有没有办法在不通过 QTWebKit 客户端的情况下在 PhantomJS(或 CasperJS)中下载文件?

我想从与正在测试的页面无关的 URL 下载以 JSON 编码的数据。

从 PhantomJS API 或 CasperJS API 中看不出如何做到这一点,因为它们的功能似乎是为了在诡异的客户端中打开 URL。

我希望人们可以简单地运行类似的东西:

下载到 PhantomJs 页面然后到客户端的普通过程是有问题的,原因有两个。首先,它缓慢且麻烦。其次,它违反了同源策略(因此 CasperJS base64encode函数将不起作用)。

在最基本的情况下,我希望 PhantomJS 客户端的 javascript 运行程序能够实现 XMLHttpRequest(或类似的东西),但我想知道是否有更规范的东西可用。

编辑

也许可以只包括 jQuery 和 use $.ajax,但不幸的是,这也会引发同源异常:

XMLHttpRequest 无法加载http://example.com:5000/test。Access-Control-Allow-Origin 不允许使用原始文件://。

我能想出的唯一解决方案是在单独的进程中(例如使用 wget)下载我想以 JSON 格式访问的文件,但由于 PhantomJS不允许执行进程(在撰写本文时),它似乎必须与 PhantomJS 分开启动。

0 投票
1 回答
6495 浏览

javascript - 使用 jquery 和 casperJs 测试

我有一个不依赖 jquery 的 Web 应用程序。

感谢(伟大的:))casperjs,我正在做功能测试。

现在我想在我的测试中使用 jquery。因此,我尝试按照此处http://casperjs.org/faq.html#faq-jquery的指示注入它。好吧,它不工作。

如果你能帮助我,这是我的代码 - 有什么问题吗?:

我删除了测试,因为这不是重点......

谢谢!

0 投票
1 回答
1166 浏览

php - 将 utf-8 编码的参数从 PHP 传递给 casper JS

通过 PHP shell_exec 函数,我使用此代码将“référencement”字作为参数传递

但是在 casperjs 中,当我记录它时,我得到了一些奇怪的字符。在 php 中一切正常。如何在 casperjs 中设置字符集 utf8?或者你如何看待解决方案?

0 投票
0 回答
1462 浏览

coffeescript - casperjs抓取给出空网页响应

我为 CasperJS 编写了一个脚本,该脚本应该读取一个 json 文件,该文件包含一个站点列表,其中包含有关如何登录的详细信息,并为每个关键字运行搜索页面。

我已经用一个可以工作的站点测试了我的代码,但是对于第二个站点,它会登录,但是当它尝试转到搜索页面时,它会返回一个空页面。

这是我的 casper 设置:

这是循环代码:

与失败有关的控制台输出如下:

为什么页面响应为空页面?

编辑:通过与其他站点的测试,似乎基本代码有效,但是这个站点似乎引起了问题。

0 投票
1 回答
2003 浏览

phantomjs - CasperJS:禁用远程页面的 javascript 但仍使用 casper.evaluate?

感谢您阅读我的主题,如果有人能建议我应该探索实现以下目标的任何其他途径,我将不胜感激。

使用 CasperJS 或 PhantomJS,我需要禁用属于我导航页面的所有 JavaScript 执行,同时仍然能够使用 casper.execute 运行我自己的。

有谁知道我可以做到这一点的方法吗?

  • 是否可以使用 onResourceRequested 或 onResourceReceived 修改 HTTP 标头或正文?或有条件地取消请求?或者他们是只读的?
  • 您可以在提供解析之前修改原始 HTML 源吗?
  • 我曾尝试过早在 casper.execute 中破解 window.stop() ,但这在页面之间的工作方式不一致。
  • Phantom WebServer 模块是否用于这种事情?我可以/应该通过它路由请求/响应并在它们通过时修改它们吗?

感谢您的帮助 - 我很欣赏这是一个奇怪的用例。

0 投票
1 回答
4992 浏览

phantomjs - 如何从 phantomjs shell 中运行 casper?

任何人都知道是否以及如何从 phantomjs shell(又名InteractiveModeREPL)中运行 casperjs?

phantomjs 外壳

我也尝试过将直接路径传递给 casper.js 模块,但这也没有奏效。

进展/更新:

  • 试过phantomjs.injectJs('C:/casperjs/module/casper.js');了,但Error: Cannot find module 'colorizer'我想我快接近了。
  • 这让我更接近但仍然缺少路径:
    • phantomjs.injectJs('C:/casperjs/module/bin/bootstrap.js')
      • 错误与Cannot find package.json at C:/package.json
    • 好的,看起来我可以在启动 phantomjs 时传递 --casper-path 选项(参见 - casper/bin/bootstrap.js:第 189 行)。
    • 好的,那行得通。(通过该选项不起作用,但设置幻影内部的路径确实如此)。
0 投票
1 回答
1299 浏览

google-app-engine - 在 Travis-CI 上运行 Google App Engine 并使用 PhantomJS 进行测试

有没有办法在Travis-CI上运行 Google App Engine开发应用服务器实例,然后使用PhantomJS / CasperJS测试该应用程序?

人们不一定认为这是一件极具挑战性的事情,但我会感谢任何相关的文件、想法和建议。

0 投票
1 回答
1524 浏览

casperjs - Casperjs 相当于 var dump

我想知道var_dumpcasper js 中的等价物是什么?

0 投票
3 回答
9955 浏览

casperjs - casperjs 传递参数来评估失败

这让我

string(307) "[37;41;1mFAIL[0m ReferenceError: 找不到变量:phone_number

有没有办法传递参数来评估方法?