2012-02-18 43 views
0

我试图解析一个HTML page,其中大部分内容都包含在javascript中。当我使用Chrome开发工具时,我可以看到我试图抓取内容的div类叫做div class=doodle-image。然而,当我要么查看页面源或尝试用PHP来抓住它:解析具有PHP与PHP的HTML

<?php 
include_once('simple_html_dom.php'); 
$html = new simple_html_dom(); 
$html->load_file('http://www.google.com/doodles/finder/2012/All%20doodles'); 
$doodles = $html->find('.doodle-image'); 
echo $html; 
?> 

它返回页面框架,但没有包含的div或内容。我如何获取页面的全部内容?

回答

2

这是因为当您的PHP客户端获取该元素时,该元素为空,Google正在用JavaScript填充JSON对象以填充涂鸦列表。它向this page发送了一个Ajax请求,也许你也可以。

+0

您是如何找到这些信息的?我尝试过使用Chrome开发者工具和FireBug(对我来说有点复杂),但没有成功。顺便说一下,你的发现使我的工作变得更加轻松。 – Nick 2012-03-02 17:27:56

+1

@Nick - 使用Firebug很容易看到。使用“控制台”或“网络”来查看来自基本页面的其他请求。 – 2012-03-02 18:05:25

+0

对不起,在评论中继续这样做,但我可以很容易地看到控制台中的json url,我正盯着它。然而,当我为页面键入一个自定义搜索选项似乎是一个JSON对象再次被加载,但萤火虫并没有显示一个网址,就像我选择不同的月份。 – Nick 2012-03-07 15:48:13