2013-04-11 5 views
0

괜찮습니다. 나는 IMDb에서 포스터를 긁어 모으고 있으며, 내 인생에서 왜 그것이 표시되지 않는지 알 수 없다. 이미지가 누락 된 것처럼 약간의 물음표가 표시된다. 이것은 내 현재 코드 :Simple_HTML_DOM을 사용하여 긁힌 이미지가 표시되지 않습니다.

<?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"/> 

나는 단순히 이미지 (그래서 내가 그 코드가 정상적으로처럼 작동 알고)하지만, 실제 웹 페이지에, 나는 '돈의 적절한 URL을 $poster3 변수를 반환 echo 이미지를 보지 마라. 대신 이미지가 지정된 URL에 있지 않은 것처럼 작은 물음표 만 표시됩니다. 그 상자를 마우스 오른쪽 버튼으로 클릭하고 사파리가 새 탭에서 이미지를 열도록 강요하면 이미지가 모든 멋진 이미지에 표시됩니다. 그러나 어떤 이유로 든 내 사이트에 표시되지 않습니다.

아이디어가 있으십니까? 스크래퍼를 막기 위해 IMDb가 나를 잠그고 있습니까? 아니면 내 코드에 뭔가가 있습니까?

답변

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 . "'/>"; 
} 
?>