如何在xpath中获得精确的img src


how to get exact img src in xpath

如果你检查页面以获得img src,你会看到类似这样的东西:/images/March/img1.jpeg。但正如你所知,那不是一个真正的地址。我想抓取这个页面并获得正确的src值。我该怎么做?thx。

<?php
$content=file_get_content('example.com');
$dom= new DOMDocument();
$dom->loadHTML($content);
$xpath=new DOMXpath();
$img=$xpath->query("(//img)[2]/@src");
foreach($img as $val){
   $images=$val->nodeValue;//just returns img/march/img1.jpeg
                           //instead of www.example.com/img.....
}
?>

您必须手动创建这样的绝对路径:

<?php
$content = file_get_contents('example.com');
$dom     = new DOMDocument();
$dom->loadHTML($content);
$xpath = new DOMXpath();
$img   = $xpath->query("(//img)[2]/@src");
// Make Absolute Url
function getAbsUrl($value, $baseurl)
{
    $Parsed = parse_url($value);
    if (empty($Parsed['host'])) {
        // Relative
        return rtrim($baseurl, '/') . '/' . ltrim($Parsed['path'], '/');
    } else {
        return $value;
    }
}
foreach ($img as $val) {
    $images = getAbsUrl($val->nodeValue, 'http://www.example.com/');
}