2012-07-29 58 views
0

我使用PHP简单的HTML DOM解析器与下面的代码片段:为什么PHP简单的HTML DOM解析器不会找到一个元素?

<?php 
include_once('../simple_html_dom.php'); 

$html = file_get_html('http://old.wowhead.com/npc=8404'); 

if ($html->find('div.pin')) 
echo 'Found'; 

?> 

但它根本找不到这个HTML页面上

'<div class="pin" style="left: 17.7%; top: 60.8%; "><a href="javascript:;"  style="cursor: default; "></a></div>' 

元素:http://old.wowhead.com/npc=8404

回答

1

我觉得div元素带班由JavaScript pin出现,所以当你刚刚下载静态的HTML文件中,有没有这样的元素。

+0

正确。如果您禁用JavaScript,则该页面只会显示一条警告:*本网站广泛使用JavaScript。 请启用浏览器中的JavaScript。* – 2012-07-29 16:26:25

+0

有没有什么办法可以解析它呢? – 2012-07-29 16:40:55

+0

噢,好的,非常感谢Danil。 – 2012-07-29 16:49:11

1

我打开你给的链接,没有一个'pin'类的div。你必须给方法一个有效的元素对象。

尝试改变选择说

$html->find('div.pad1'); 

它的工作原理......在我的情况

+0

任何东西,你在代码中找到的元素不在dom中。 ('div.pad2');' – 2012-07-29 16:12:05

+0

在我的情况我用户$ html-> find('div.pad2');而不是$ html-> find('div .pad2');所以我摆脱了错误。中间的空格非常重要,注意 – Silentbang 2012-12-19 07:03:56

相关问题