2015-02-11 47 views
2

我正在做一個與'simple_html_dom'庫的頁面的解析器,但沒有得到成功解析通過ajax獲得內容的html。有沒有辦法解決?使用simple_html_dom與ajax

PHP代碼:

<?php 
require_once '../library/Simple_HTML_DOM/simple_html_dom.php'; 

// Create DOM from URL or file 
$html = file_get_html('http://www.playnow3dgames.com/genre.php?id=sports'); 

// Find all images 
foreach($html->find('img') as $element){ 
echo $element->src . '<br>'; 
} 
?> 

只打印在邊緣和頂部(HTML本機)的圖像和(使用AJAX)不會被解析中心的圖像。

+0

是此頁http://www.playnow3dgames.com/listing.php?genre=sports&order=date? – 2015-02-11 13:36:16

+0

您的意思是你沒有得到僅僅通過JavaScript加入到網頁的內容?當然不是,因爲'file_get_contents'不會「執行」JavaScript。你需要一些模擬瀏覽器的東西(研究關鍵字:'無頭瀏覽器') – CBroe 2015-02-11 13:41:43

+0

謝謝,期待phamtomjs,希望它適用於我的情況 – 2017-01-02 04:23:48

回答

-1

嘗試用這種

<?php 
require_once '../library/Simple_HTML_DOM/simple_html_dom.php'; 

// Create DOM from URL or file 
$html = file_get_html('http://www.playnow3dgames.com/listing.php?genre=sports&order=date'); 

// Find all images 
foreach($html->find('img') as $element){ 
    echo $element->src . '<br>'; 
} 
?> 

=== UPDATE ====

actualy,這是一個IFRAME,它不是阿賈克斯。 在http://www.playnow3dgames.com/genre.php?id=sports中心框架:在這裏

http://www.playnow3dgames.com/listing.php?genre=sports&order=date 

http://www.playnow3dgames.com/listing.php?genre=sports&order=date

你可以看到URL的結構genre=sports

這是真正的網址:http://www.playnow3dgames.com/genre.php?id=sports

,你會看到的比賽id=sportsgenre=sports

爲了獲得每一頁,你只需要改變genre=genre_name。例如:

http://www.playnow3dgames.com/genre.php?id=strategy 

主框架將是:

www.playnow3dgames.com/listing.php?genre=strategy&order=date 

,如果你想獲得1,2,3頁......,你需要添加page=page_number。例如:獲得

http://www.playnow3dgames.com/genre.php?id=strategy 

URL的第2頁將是:

http://www.playnow3dgames.com/listing.php?genre=strategy&page=2&order=date 
+0

感謝您的回答,@ MrJerry,1st這是listing.php?第二作品,但適用於每個網站使用Ajax? – Ricardo 2015-02-11 13:43:48

+0

請參閱我的更新以獲取每個網頁 – 2015-02-11 13:52:25