我有一个脚本,我使用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;
,代码显示没有数据的空白网页。
我该如何解决这个问题?
提前致谢。
答案 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/>";
}