2017-03-18 156 views
0

我想从一个网站的数据存储在一个内部div的所有图像,我如何获取所有图像。我试过了,但它不能工作。这里是我的代码从网页上刮取网页数据

<?php 
$html = file_get_contents('http://en.vonvon.me/'); //get the html returned from the following url 

$pokemon_doc = new DOMDocument(); 

libxml_use_internal_errors(TRUE); //disable libxml errors 

if(!empty($html)){ //if any html is actually returned 

    $pokemon_doc->loadHTML($html); 
    libxml_clear_errors(); //remove errors for yucky html 

    $pokemon_xpath = new DOMXPath($pokemon_doc); 

    //get all the h2's with an id 
    $pokemon_row = $pokemon_xpath->query('div[class=desc ng-binding]'); 

    if($pokemon_row->length > 0){ 
     foreach($pokemon_row as $row){ 
      echo $row->nodeValue . "<br/>"; 
     } 
    } 
} 
?> 
+1

那么,有什么问题?没有或错误的输出?错误讯息?检查错误日志? Btw ..如果你的代码不起作用,你应该删除'@'符号,因为这些符号会抑制错误消息,这在调试时很有用。 –

回答

0

你不能删除JavaScript工作的网站[Angular],那么在JavaScript执行后,抓取者没有看到DOM。

但在另一方面,如果图像是在DOM中,你可以使用

造成这种情况的最好的事情是Simple HTML DOM Parser

$html = file_get_html('http://vonvon.me/'); 

// Find all images 
foreach($html->find('img') as $element) 
     echo $element->src . '<br>'; 
+0

你能看到现在的代码,图像是在一个内部的股利,这就是为什么我这样做,但它仍然无法正常工作。 – user7657378

+1

对不起,我没有看到DOM,发布答案之前,网站使用Angular JS,你不能废弃它。 –