2017-02-20 43 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

相關問題