Вы искали div[@class='p-articlelist-content-img']
вместо ul
.
Кроме того, вы не должны скрывать сообщения об ошибках с оператором @
, вместо этого используйте функцию libxml_use_internal_errors()
, как и было задумано.
Наконец, поиск //
в XPath стоит дорого, поэтому по возможности избегайте его, и вы можете получить значение атрибута непосредственно из запроса (хотя я не знаю, является ли это более эффективным.)
function pageContent(String $url) : \DOMDocument
{
$html = cache()->rememberForever($url, function () use ($url) {
return file_get_contents($url);
});
$parser = new \DOMDocument();
libxml_use_internal_errors(true);
$parser->loadHTML($html);
libxml_use_internal_errors(false);
return $parser;
}
$url = "https://sumai.tokyu-land.co.jp/osaka";
$parser = pageContent($url);
$rota = new \DOMXPath($parser);
$images = $rota->query("//ul[@class='p-articlelist-content-img']/li/img/@src");
foreach ($images as $image) {
$resimler[] = $image->nodeValue;
}
var_dump($resimler);