使用simpleHTMLDOM只捕获特定的div类,而不是抓取整个页面

时间:2014-09-26 15:39:24

标签: php html

Hello Stackoverflow我试图使用以下库simplehtmldom.sourceforge.net

这个小脚本的目的是获取StackOverflow徽标并回显它。但由于一些奇怪的原因,它会抓取每个DOM元素。知道我在这里做错了吗?

<?php
include('simple_html_dom.php');

$request_url = 'http://stackoverflow.com/';
$html = file_get_html($request_url);

$element = $html->find('div[id=hlogo]');

echo $html->save($element);

提前感谢您花时间阅读本文!

1 个答案:

答案 0 :(得分:0)

$html->find以您正在使用它的形式返回一个数组,因此您需要访问数组的第一个元素才能获得结果:

include('simple_html_dom.php');

$html = file_get_html('http://stackoverflow.com');
$logo = $html->find('#hlogo'); // find the id hlogo

echo $logo[0];

# prints out
# <div id="hlogo"> <a href="/"> Stack Overflow </a> </div>

您还使用save功能错误;来自文档:

// Dumps the internal DOM tree back into string 
$str = $html->save();

// Dumps the internal DOM tree back into a file 
$html->save('result.htm');

您正在获取整个页面,因为$html包含整个DOM!