2012-07-10 60 views
0

我有一個小腳本,使用JavaScript從其他站點拉HTML。如何在PHP中包含動態JavaScript頁面的靜態HTML結果?

我希望包括獲取一個PHP頁面,而不出現在被顯示的最終PHP頁面的JavaScript代碼的任何拉靜態HTML。

我試着用PHP代碼在PHP頁面中包含該文件,但它只包含實際的Javascript,而不包括Javascript的結果

那麼我該怎麼做呢?

回答

1

您將需要抓取網頁,在它執行JavaScript,然後提取你從生成的DOM想要的數據。

通常的做法,這是使用Web自動化工具如Selenium

0

你根本做不到。

你要明白,PHP和JavaScript在不同的地方,PHP服務器和客戶端的JavaScript上運行。

你唯一的解決辦法是改變這一切做的方式,並使用「的file_get_contents(URL)」,從PHP讓你的JavaScript中使用,以獲得相同的內容。這樣,就再也沒有JavaScript了,你仍然可以用遙遠的內容預處理你的頁面。

+0

謝謝,我嘗試使用「file_get_contents」而不是「include」來使用Javascript獲取頁面,但它沒有獲取任何內容。有任何想法嗎? – ProgrammerGirl 2012-07-10 12:33:39

+0

Mathieu指出:「並使用PHP中的file_get_contents(url)」......這不是javascript,它是PHP,你必須使用這個函數來獲取文件或url的內容並將其放入php變量... – 2012-07-10 12:34:50

0

由於您需要運行Javascript代碼,因此您無法直接在PHP中執行此操作。

我建議將URL(以及任何必需的操作,如點擊事件等)傳遞給無頭瀏覽器,如PhantomZombie,並在JS引擎完成工作後捕獲DOM。

你也可以使用真實的瀏覽器,但當然你不需要用戶界面,它可能會阻礙你想要做的事情,所以無頭瀏覽器可能會更好。

這種事情通常會被用於網站的自動化測試(即功能測試)。

有一個名爲Mink一個PHP工具,它可以從一個PHP程序中運行此類腳本。它旨在編寫測試腳本,但我想可以將其用於您的目的。

希望有所幫助。