2014-11-13 3 views
1

У меня есть сценарий, в котором я использую curl для загрузки веб-страницы игровой игры Google.Ошибка с loadHtml на скрученном HTML

Далее, я пытаюсь извлечь ГКЗ <img>, чей класс "cover-image"

Вот мой сценарий

<?php 

$url = "https://play.google.com/store/apps/details?id=com.igg.castleclash"; 
$ch = curl_init(); 
$timeout = 5; 
curl_setopt($ch,CURLOPT_URL,$url); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); 
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); 
$data = curl_exec($ch); 

echo $data; 

$dom = new DOMDocument(); 
$dom->loadHTML($data); 
$xp = new DOMXPath($dom); 
$srcs = array(); 
$result = $xp->query("//img[@class='cover-image']/@src"); 
foreach($result as $attr) 
{ 
    echo $attr->value. "<br/>"; 
} 

?> 

Проблема заключается в том, что, если я делаю этот код echo $data;

Затем отображается весь html, и я могу получить src cover-image

, но когда я com . то есть удалением echo $data;, код показывает пустую веб-страницу без данных.

как я могу решить эту проблему?

Заранее спасибо.

ответ

2

Альтернативно, вы можете бесплатно скачать его в ->loadHTMLFile(). Пример:

$dom = new DOMDocument; 
libxml_use_internal_errors(true); 
$dom->loadHTMLFile('https://play.google.com/store/apps/details?id=com.igg.castleclash'); 
libxml_clear_errors(); 
$xp = new DOMXPath($dom); 
$image_src = $xp->query("//img[@class='cover-image']/@src"); 
foreach($image_src as $attr) { 
    echo $attr->value. "<br/>"; 
}