2011-08-03 59 views
-1

我正在使用QueryPath來抓取一些HTML文件。在這些HTML文件中,HTML註釋中包含一些JS腳本。 JS會產生一些文本內容以顯示在屏幕上,所以我不能在沒有執行JS腳本的情況下找到(刮擦)文本內容。
是否可以使用QueryPath執行JS腳本?使用QueryPath執行javascript

+0

請你花一些時間來框定問題嗎?請詳細說明具體要求?到目前爲止你做了什麼?有一個片段? – naveen

+0

是的,請澄清問題。這並沒有給出足夠的上下文來正確回答。 – feathj

+0

對於這個不清楚的問題感到抱歉。 @naveen我編輯了我的問題。 –

回答

0

您是否嘗試過將您的JS腳本附加到html頁面。

qp(QueryPath::HTML_STUB)->append('<script type="text/javascript" language="javascript">alert("Hello!");</script>')->writeHtml(); 
+0

感謝您的關注。我沒有嘗試過,但我認爲這適用於我。我找到了一種提取javascript內容的方法。我使用'next('div#id') - > find('script [type =「text/javascript」]')'來提取。這些DIV元素中有幾個腳本,但我只能得到第一個腳本。你知道如何獲得DIV元素中的所有javascript內容嗎? –

0

目前,在QueryPath中沒有辦法執行JavaScript。原因是因爲PHP無法訪問對象或JavaScript解釋器的瀏覽器window

我知道的最好的選擇是使用Selenium(基本上是一個瀏覽器遠程控制器)來運行瀏覽器,然後使用其中一個PHP Selenium庫來獲得結果。當然,如果你願意,你可以在PHP Selenium庫中使用QueryPath。

這裏的PHP硒庫體面的概述:http://css.dzone.com/articles/selenium-2-php-code