使用Simple_HTML_DOM不显示刮擦图像

时间:2013-04-11 21:49:21

标签: html web-scraping simple-html-dom imdb

好的。我正在从IMDb上抓一张海报,而对于我的生活,我无法弄清楚为什么它没有显示 - 我只是得到一个小问号,就像图像丢失一样。这是我目前的代码:

<?php    
$p = 1;
foreach($movie_html->find("div[class=image]") as $poster1)
{
    foreach($poster1->find("img") as $poster2)
    {
        $p++;
        if ($p == 1) break;
    }
}
$poster3 = $poster2->src;
?>

<img src="<?php echo($poster3); ?>" height="300"/>

当我只是echo $poster3变量时,它会返回图像的正确网址(所以我知道代码的工作方式应该如此),但在实际的网页上,我看不到图片。相反,我得到的只是一个小问号,好像图像不在指定的URL。当我右键单击该框并强制Safari在新选项卡中打开图像时,我看到图像只是坐在那里一切都很漂亮!但由于某种原因,它没有在我的网站上显示。

有什么想法吗? IMDb锁定我以防止刮刀吗?或者我的代码中有什么东西?

1 个答案:

答案 0 :(得分:0)

这对你有什么用?

<?php
/* getIMDB.php
   -- displays movie poster (and its url as a tool-tip) from an IMDB page
*/
    include_once('../simpleHTML/simple_html_dom.php');

    $url = "http://www.imdb.com/title/tt0246578/";
    $movie_html = file_get_html($url);
    outputImg($movie_html);


function outputImg($movie_html)
{
    $p = 1;
    foreach($movie_html->find("div[class=image]") as $poster1)
    {
        foreach($poster1->find("img") as $poster2)
        {
            $p++;
            if ($p == 1) break;
        }
    }
    $poster3 = $poster2->src;
    echo "<img src='" . $poster3 . "' title='" . $poster3 . "'/>";
}
?>