Доброго времени суток!
Хочу в общем распарсить fl curl - ом!
Получаю html, и он корректный, а вот phpQuery как то непонятно себя ведет, подробнее описал в комментариях к коду.
<?php
require_once 'vendor/autoload.php';
// -------------------------- [ Main Code ] --------------------------
$url = 'https://www.fl.ru/projects/';
function parse_content($url=''){
$ch = curl_init();
$headers = [
'User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36',
'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4',
'Connection:keep-alive',
];
$cookie = dirname(__DIR__) . 'tmp/cookie.txt';
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
$res = curl_exec($ch);
curl_close($ch);
$html = iconv("windows-1251","utf-8", $res);
return $html;
}
/* echo parse_content($url); // Тут html парситься нормально
exit;*/
$result = phpQuery::newDocument(parse_content($url));
//echo $result->html(); // А тут уже отдается пол страницы с непонятными символами
// Далее вообще не могу получить ничего
foreach ($result->find('#projects-list .b-post') as $block) {
$obj = pq($block);
$title = $obj->find('h2')->html();
$prise = $obj->find('.b-post__price')->text();
$text = $obj->find('.b-post__txt ')->text();
print $title
."<br /> Цена:". $prise
."<br />" . $text ;
}
phpQuery::unloadDocuments();
Спасибо за внимание!