Задать вопрос

Как получить результат запроса ajax?

Столкнулся с необходимостью спарсить данные с одного сайта, а именно livestreamz.net. Реализовать все решил инструментами cURL. Проблема в том, что блок вывода данных здесь подгружается из AJAX. В процессе вышел на подгружающий скрипт (livestreamz.net/wp-admin/admin-ajax.php), скопировал POST и данные с HEADER, однако скрипт упорно отказывается отдавать мне данные (как в браузере, так и через cURL).
В процессе код привел к такому виду, хоть и накидал здесь лишнего в процессе поиска решения:
<?php

$curl = curl_init();
$ajaxpost = array(
"action" => "load_events",
"catid" => "all",
"searchevent"=>"",
"timezone" => "+3",
);
$headers = array(
    "POST /wp-admin/admin-ajax.php HTTP/1.1",
    "Host: livestreamz.net",
    "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3",
    "Accept-Encoding: gzip, deflate",
    "Content-Type: application/x-www-form-urlencoded; charset=UTF-8",
    "Content-Length: 56",
    "Connection: keep-alive",
    "Cache-Control: max-age=0",
    "Accept: */*",
    "Referer: http://livestreamz.net",
    "X-Requested-With: XMLHttpRequest",
    'Cookie: __cfduid=d95956aaa26b79dbad1a96384993998531493297051; advanced_ads_page_impressions=3; __atuvc=3"%"7C17; PHPSESSID=ckulfdc3oiadpip52pcnc4e7g1; _ga=GA1.2.625847550.1493297040; _gat=1; __atuvs=5901f58c7fbdc80d001'
);
curl_setopt($curl, CURLOPT_FAILONERROR, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // allow redirects
curl_setopt($curl, CURLOPT_TIMEOUT, 10); // times out after 4s
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // return into a variable
curl_setopt($curl, CURLOPT_URL, "http://livestreamz.net/wp-admin/admin-ajax.php");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $ajaxpost);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0");

$data = curl_exec($curl);
echo $data;

Как быть? Ставить PhantomJS не хотелось бы, ведь по факту все данные есть. Что я упускаю из виду? Два дня бьюсь над этим скриптом. Благодарю за внимание.
  • Вопрос задан
  • 555 просмотров
Подписаться 2 Оценить 4 комментария
Решения вопроса 1
@justpusher
Попробуйте в инспекторе браузера скопировать у рабочего запроса copy as curl, и потом попытаться повторить этот запрос консольным curl. Если будет работать - убирайте по одному заголовки и параметры, так вы узнаете, что важно, а что нет.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы