Pobranie określenego znacznika <div> ze strony

0

Cześć wszystkim od razu tradycyjnie piszę, że nie zajmuje się programowaniem na co dzień więc wybaczcie mi za mój kod... ale do rzeczy chcę sobie stworzyć skrypt który będzie mi pobierał aktualne mieszkania ze strony i wysyłał na maila jak pojawi się nowe. I mam taki problem pobiera mi ok ale jak zrobić by pobrał mi tylko pierwsze wystąpienie w kodzie

<div class="column-container">

Czyli to co wyszuka a nie proponowane inne lokalizacje...
Oto mój pseudo kod ;)


$ogl = ('https://mikolow.nieruchomosci-online.pl/szukaj.html?3,mieszkanie,sprzedaz,,Miko%C5%82%C3%B3w:16455,,,,-300000,46,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,1');

$linki = explode(" ", $ogl);

 foreach ($linki as $link) {

$options1  = array('http' => array('method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n", 
              'user_agent' => 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36'));
$context1  = stream_context_create($options1);
$html = file_get_contents($link, false, $context1); 


$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTML($html);
libxml_clear_errors();

$divs = $dom->getElementsByTagName('div');



foreach ($divs as $div){

     if(preg_match('/\bcolumn-container\b/', $div->getAttribute('class'))) {
         $links = $div->getElementsByTagName('a');
         foreach($links as $link){
              $li1 = $link->getAttribute('href');
              
              $path = parse_url($li1, PHP_URL_PATH);
              #print_r($path);
              $li= 'https://'.parse_url($li1, PHP_URL_HOST).parse_url($li1, PHP_URL_PATH);
              print_r($li."<br>");
        }
        }
        }

Próbowałem to jakoś prościej zapisać ale coś mi to nie działa jak niżej:

$dom = new DomDocument();
$dom->load($html);
$finder = new DomXPath($dom);
$classname="column-container";
$nodes = $finder->query("//*(@class, '$classname')");

Z góry dziękuję za pomoc...

2

DOM nie ma już w wersji PHP 8.

    $finder = new DOMXPath($dom);
    $nodes = $finder->query( '//div[@class="column-container column_default"][1]//a' );
    foreach ($nodes as $link) {
        print($link->getAttribute("href")."\n");
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1