我可以使用PHP在外国网页上执行JavaScript吗?

时间:2017-02-20 22:56:16

标签: javascript php

我想编写一个PHP脚本,它在外部网站上执行代码,就像在该网页上使用JS-console一样。我不希望服务器像某个网页上的客户端那样行事。

为了让它变得更加困难,JavaScript必须在不同的框架上执行(手动执行JavaScript时,我可以通过点击控制台上方下拉菜单中的特定框架切换到正确的控制台(Chrome) ))。

如果我尝试在这里做一些几乎不可能的事情,请不要犹豫,准确地告诉我。

2 个答案:

答案 0 :(得分:0)

您应该尝试描述您的最终目标。你可能在这里走错了路。无法将javascript添加到您自己不提供的页面中。

答案 1 :(得分:0)

如果我理解你的意思(更多细节在这里真的有帮助)。您希望通过在网页上手动运行javascript(通过控制台)自动完成您可以在浏览器上手动执行的操作。我认为你想要这样做的唯一原因是触发Ajax请求/ API调用或提交表单。

这在技术上是可行的,但最好是寻找一个可以直接与之交谈的实际API;您可以通过检查开发人员工具的网络选项卡来执行此操作,但如果他们没有公共API,您可能需要做相当数量的假冒请求;如果服务器上有任何变化,它可能都会停止工作。

如果他们没有您可以打电话的API,或者他们已经采取措施。那么你很有可能试图滥用网站;他们可能会采取进一步措施阻止你(这就是为什么存在验证码)。

如果您可以找出要发送的请求的详细信息,那么您可以使用CURL发出请求 - 此页面可能有所帮助:https://davidwalsh.name/curl-post

如果你真的仍然发现你需要/想要在远程页面上实际运行javascript,那么这就是“浏览器自动化”,虽然技术上可以从PHP触发 - 需要更多才能实现。 Selenium主要用于自动化测试,但允许你这样做:http://www.seleniumhq.org/通过JavascriptExecutor,但我建议你做一些进一步的搜索教程,因为它太大/广泛到真正覆盖在这里:

https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/JavascriptExecutor.html