2013-06-25 80 views
-1

什麼被認爲是一個很好的習慣來解析HTML頁面,其中html是通過JavaScript插入的? 查看源代碼時,以下頁面Parcel report未顯示錶格或表格數據。我最好的猜測是這是因爲表格是通過JavaScript插入的。那麼在這種情況下,這種數據的一種很好的實踐方法是什麼呢?用javascript注入的javascript

我希望將文件轉儲到一個字符串和打印表使用類似的方法,但我願意聽到任何建議。

$html_import = ??? 
$html->loadHTML($html_import); 
$td = $html->getElementsByTagname('td'); 
foreach($td as $tds) { 
printf(" * %s\n", $tds->textContent); 
echo '<br>'; 

}

+0

你不能「刮」這樣的內容,因爲JS代碼不會在PHP中執行。 PHP(和DOM)不能對js生成/插入的代碼做任何事情。您需要使用其他方式,例如一個無頭瀏覽器來模擬實際的瀏覽器渲染頁面,然後從中提取修改後的DOM。 –

+0

你能指導我的任何信息來源嗎?對,我編輯了一下我的問題。我希望將html的內容轉儲爲一個字符串,然後加載該字符串。 –

+0

http://stackoverflow.com/questions/6578132/php-headless-browser –

回答

1

如果你看一下HTTP請求正在進行加載網頁時,你會看到AJAX請求出去。

GET http://gis.catawbacountync.gov/_rest/v0/ws_ims_attribute_query.php?parameters=pinc+%3D+%27374219517154%27&table=ws_parcel_report3&fields=*&orderby=&format=json 

這就是實際檢索你想要的數據。如果您可以訪問該API,則可以輕鬆獲取所需的信息。

因爲這是一個政府網站,我懷疑他們需要給你這個信息,因此API。

如果您試圖通過試驗/錯誤拼湊API,請確保您沒有違反任何使用條款。

+0

這是公開的數據。我在網站上瀏覽了一下,除了沒有惡意攻擊這個網站外,沒有看到任何東西,但我會再次檢查。 –