有没有办法使用PhantomJs / CasperJS或类似的无头浏览器录制动作?

时间:2013-08-01 14:07:55

标签: php phantomjs casperjs headless-browser

好的,这里是我试图找到解决方案的问题的简要说明。

假设我们有一个可以自动执行不同在线任务的在线服务(点击链接,导航到页面,从组合框中选择一个选项,最后从地址栏复制地址)。我想要执行这些操作的站点完全使用JavaScript,我希望一切都在PHP端点我的意思是php脚本从用户获取参数,将其传递给JS Server并检索结果并将其显示回用户

这样的场景怎么办?任何的想法? 我知道可以通过详细分析DOM元素来完成它,但它非常耗时且易变。只是想知道有没有办法,所以我可以像Selenium一样记录这个动作?怎么样的php< - >无头浏览器互动?

2 个答案:

答案 0 :(得分:7)

对于问题的手动录制部分,CasperJS + resurectio Chrome extension组合非常方便。

答案 1 :(得分:1)

在您的场景中,您尝试抓取的Web上下文包含JavaScript,CasperJS是一个很好的选择。您可以使用它来触发事件,添加流程步骤,包括在每个ajax调用之后等待和验证的函数,然后再处理任何下一步。

这里有一个关于如何使用javascript和jQuery使用casperjs的示例。
CasperJs and Jquery with chained Selects

这里有一个关于如何将casperjs设置为服务以便将数据传递给PHP的示例。
CasperJS passing data back to PHP