使用DomDocument的img class =“cover-image”的多个src

时间:2014-11-13 13:21:02

标签: php html domdocument

我正在使用脚本获取<img>的src,其中class =&#34; cover-image&#34;

该网页属于Google Play商店页面。

这是脚本:

$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/>";
}

问题是,只有一个带有类名称覆盖图片的<img>代码,但我仍然获得15个src值。

2 个答案:

答案 0 :(得分:1)

如果您的目的是获取第一个,那么您可以在xpath查询中添加它:

$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->evaluate("string(//img[@class='cover-image'][1]/@src)");
echo $image_src;

echo "<img src='$image_src' alt='' />";

此外,如果您想要在网站最上部(靠近标题部分)的封面图片,您可以直接将其指向它:

$image_src = $xp->evaluate("
    string(
        //div[@class='details-info']
        /div[@class='cover-container']
        /img[@class='cover-image']/@src
    )
"); // much more specific

答案 1 :(得分:0)

你确定应该只有1个标签吗?我在html代码中看到了这个类的15个标签。