PHP DOM Parser仅适用于某些页面

时间:2011-02-25 21:08:25

标签: php parsing dom curl

我正在使用:http://simplehtmldom.sourceforge.net/并注意到在示例中,并尝试抓取某些网站,只有部分网站会返回结果。

我正在使用:

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

// Create DOM from URL or file
$website = 'http://www.digg.com/';
$html = file_get_html($website);

// Find all images 
foreach($html->find('img') as $element) 
   echo "<img src=\"" . $website . $element->src . "\"" . '<br>';

其中显示了一堆缩略图,但它们几乎是空白的(并且它没有返回所有缩略图)。

是不是因为他们对人有某种限制?这种情况发生在多个网站上。

1 个答案:

答案 0 :(得分:1)

你假设$ element-&gt; src总是相对于$ website而言它很容易就不会......

例如:$ element-&gt; src可能已经是http://www.digg.com/image.jpg所以然后做$ website。 $ element-&gt; src将是http://www.digg.com/http://www.digg.com/image.jpg,这将无效......

尝试

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

// Create DOM from URL or file
$website = 'http://www.digg.com/';
$html = file_get_html($website);

// Find all images 
foreach($html->find('img') as $element) {
   //dont want double slashes
   $src = ltrim($element->src, '/');
   //dont want double urls
   $src = str_replace($website, "", $src);

   echo "<img src=\"" . $website . $src . "\"" . '<br>';
}