Сайты которые не особо такие известные и простые парсятся легко, а днс и ситилинк не хотят.
В общем, пишу код(который снизу напишу) и при запросе не могу получить хотя бы ссылку на товар. Путь указываю правильно и классы тоже, и теги, но постоянно при выводе пишет array(0) { }
Есть же наверное какие-то способы обойти эту защиту? Использую библиотеку phpQuery по совету ютубера:)
На скрине я пытаюсь хотя бы ссылки на товары вытянуть, но их он не отдаёт. Ситилинк отдавал ссылки, но не отдавал название и цену, а днс вообще всё зажопил.
Фреймворки пока не использую, хотелось бы научиться сначала так делать чтобы знать как это всё работает. Мне ещё подсказали, что можно как-то с их API работать, но я не знаю как это сделать. Такой код разве не должен сработать? Если в кратце что я хочу, то я хочу спарсить просто все товары оттуда(цену, ссылку и название), но столкнулся с проблемой
Код:
<?php
require_once __DIR__.'/Librarys/phpQuery-onefile.php';
function Parsing($url){
$url = curl_init($url);
curl_setopt($url, CURLOPT_RETURNTRANSFER, true);
curl_setopt($url, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($url, CURLOPT_HEADER, false);
$result = curl_exec($url);
curl_close($url);
return $result;
}
$result = Parsing('https://www.dns-shop.ru/search/?q=%D1%81%D0%BC%D0%B0%D1%80%D1%82%D1%84%D0%BE%D0%BD%D1%8B+%D1%81%D0%B0%D0%BC%D1%81%D1%83%D0%BD%D0%B3&category=17a8a01d16404e77');
$lib_pq = phpQuery::newDocument($result);
$arrDataCards = array();
$listLinks = $lib_pq->find('.catalog-product .catalog-product__name a');
foreach($listLinks as $link){
$arrDataCards[] = pq($link)->attr('href');
}
var_dump($arrDataCards);