卷曲HTML上的loadHtml出错

时间:2014-11-13 10:41:00

标签: php html curl domdocument

我有一个脚本,我使用curl加载谷歌游戏的网页。

接下来,我正在尝试提取其类<img>

"cover-image"的src

这是我的剧本

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

但是当我评论出来的时候。即删除echo $data;,代码显示没有数据的空白网页。

我该如何解决这个问题?

提前致谢。

1 个答案:

答案 0 :(得分: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/>";
}