2017-02-20 37 views
0

我想编写一个在外部网站上执行代码的PHP脚本,就像在该网页上使用JS控制台一样。我不希望服务器像某个网页上的客户那样行事。为了使它更加困难,JavaScript必须在不同的框架上执行(当手动执行JavaScript时,我会通过点击控制台上方下拉菜单中的特定框架(Chrome)切换到正确的控制台) )。我可以在使用PHP的外国网页上执行JavaScript吗?

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

+5

Javascript是由客户执行的,而不是服务器(我不算node.js)。 – Barmar

+0

使用[Ajax](https://www.w3schools.com/xml/ajax_intro.asp),不要与荷兰足球队混淆。 – Xorifelse

+0

你问的是如何从其他网站获取内容,然后设置为iframe,然后使用js-console?也许跟踪其他网站的漏洞? –

回答

0

你应该试着描述你的最终目标是什么。你可能在这里走错了路。没有办法将JavaScript添加到您不需要为自己服务的页面。

0

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

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

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

如果你能找出发送请求的细节,那么你可以使用curl发出请求 - 这个页面可以帮助:https://davidwalsh.name/curl-post

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

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

相关问题