Нужно спарсить сайт, в котором информация вытягивается через API и код который приходит в парсер закодирован слэшами, из за чего фильтры PhantomJS не могут бегать по элементам полученного кода.
Вот что получается на выдаче
<head></head><body>{"itemsLeft":1834,"html":"\r\n <!--prod-preview js-prod -->\r\n\r\n<div class="\"catalog-col\"">\r\n <a href="\"/game/crusader-kings-ii-imperial-collection\"" class="\"catalog-card" js-prod\"="">\r\n <span class="\"catalog-card__inner\"">\r\n <img src="\"https://gabestore.ru/product/370x460_xJGhz-e1ruMWgPQLWxKzgpJbKr2SeHzz.jpg\"" class="\"catalog-card__img\"">\r\n <span class="\"catalog-card__bottom\"">\r\n <!-- <span class=\"catalog-card__price catalog-card__price_full\">\r\n <span><font class=\"currencyPrice\" currency=\"250\">250</font><span class=\"rub\"><font class=\"currencySymbol\"><span class=\"rub\">P</span></font></span></span>\r\n </span> -->\r\n <span class="\"catalog-card__price\"">\r\n <span><font class="\"currencyPrice\"">4395</font> <font class="\"currencySymbol\"">Р</font></span>\r\n
А вот код
public function gabestore()
{
$client = Client::getInstance();
$client->getEngine()->setPath(dirname(__FILE__) . '/bin/phantomjs.exe');
$client->isLazy();
$request = $client->getMessageFactory()->createRequest('https://gabestore.ru/search/next?series=&ProductFilter[sortType]=desc&loaded=0', 'GET');
$response = $client->getMessageFactory()->createResponse();
$client->send($request, $response);
$html = $response->getContent();
$crawler = new \Symfony\Component\DomCrawler\Crawler($html);
$stripped = $html;
stripcslashes($stripped);
$b = html_entity_decode($stripped);
stripcslashes($b);
dd($b);
// $crawler->filter('.catalog-col')->each(function($str) {
// $str->attr('href');
//
// dd($str);
// });
}
Вот так код выглядит если его не пропускать через функции раскодировки
<head></head><body>{"itemsLeft":1834,"html":"\r\n <!--prod-preview js-prod -->\r\n\r\n<div class="\"catalog-col\"">\r\n