Пытаюсь спарсить цену с сайта (по class="detail-price-uah"), но она грузится не на все указанные товары, то есть к одним товарам грузится к другим нет. И с каждым запуском меняется, то есть сейчас у этого товара цена подгрузилась, перезапустил парсер, уже у него цены нет, но есть у другого товара.
На сколько я понял цена на сайте исходнике подгружается из скрипта, но рядом лежит <meta itemprop="price" content="399">
Здесь значение content="399" и есть нужная мне цена, то есть "399".
Но добраться до этого content я никак не могу. Как это можно сделать? Или как можно подгрузить данные прямо из скрипта?
Видел что вроде бы можно как то регуляркой все что нужно вытянуть, но никак пока не пойму как ее написать.
Возможно задаю глупые вопросы, я только начинаю изучать это все.
Мой код парсера:
<?php
header('Content-Type: text/html; charset=utf-8');
include_once('lib/curl_queri.php');
include_once('lib/simple_html_dom.php');
$html = curl_get('https://rozetka.com.ua/uslugi/c153670/'); //подключаюсь к сайту донору
$dom = str_get_html($html); //получаю код страницы
$services = $dom->find('.g-i-tile-i-title'); //ищу на странице товары (сервисы)
foreach($services as $service){
$a = $service->find('a', 0); //сохраняю ссылки на сервисы
$one = curl_get($a->href); //перехожу на страницу по сохраненной ссылке
$one_dom = str_get_html($one); //получаю код страницы
$price = $one_dom->find('.detail-price-uah'); //ищу на странице цену по классу
echo $price . ' --- ' . $a->href . '<br>'; //вывожу цены и ссылки на сервисы
}
?>
Если мой коммент к вопросу расписать более подробно, то получается нечто вроде такого.
$content = file_get_contents("https://rozetka.com.ua/uslugi/c153670/");
$html = str_get_html($content);
$result = [];
$items = $html->find(".g-i-tile-i-box-desc");
foreach($items as $item){
$href = $item->find(".g-i-tile-i-title a", 0)->href;
$price = null;
$script = $item->find('script', 0)->innertext;
if(preg_match("/pricerawjson\\s=\\s'(.*?)'/", $script, $matches)){
$json = urldecode($matches[1]);
$data = json_decode($json, true);
$price = $data['price'];
}
$result[] = ['href' => $href, 'price' => $price];
}
print_r($result);
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости