За последние 24 часа нас посетили 17618 программистов и 1724 робота. Сейчас ищут 902 программиста ...

Парсинг ajax курлом (по согласию владельцев)

Тема в разделе "Сделайте за меня", создана пользователем Nikitka21, 8 фев 2018.

  1. Nikitka21

    Nikitka21 Новичок

    С нами с:
    8 фев 2018
    Сообщения:
    2
    Симпатии:
    0
    Есть сайт https://magput.ru/?id=10&viewprog=13870 .
    На нем аяксом подгружается таблица "Даты" #pricelist.
    Ajax обращается к url https://new.magput.ru/backend/Search/ProgramInfo
    $.ajax({url:"https://new.magput.ru/backend/Search/ProgramInfo",xhrFields:{withCredentials:!0},type:"POST", data:JSON.stringify(MPUtils.getParamValue(window.location.href,"viewprog"));

    Пытаюсь парсить
    PHP:
    1. $headers = array(
    2.     "Host" => "new.magput.ru",
    3.     "Accept" => "application/json; charset=utf-8",
    4.     "Accept-Language" => "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7",
    5.     "Accept-Encoding" => "gzip, deflate, br",
    6.     "Origin" => "https://magput.ru",
    7.     "Connection" => "keep-alive",
    8.     "X-Requested-With" => "XMLHttpRequest",
    9.     "Referer" => "https://magput.ru/?id=10&viewprog=13870"
    10. );
    11. // post fields
    12. $post_fields = array(
    13.         'viewprog'=>'13870',
    14. );
    15. $post_fields1 = json_encode($post_fields);
    16. // options
    17. $options = array(
    18.     CURLOPT_URL => 'https://new.magput.ru/backend/Search/ProgramInfo',
    19.     CURLOPT_RETURNTRANSFER => true,
    20.     CURLOPT_HEADER => false,
    21.     CURLOPT_HTTPHEADER => $headers,
    22.     CURLOPT_POST => true,
    23.     CURLOPT_POSTFIELDS => http_build_query($post_fields1),
    24.     CURLOPT_CONNECTTIMEOUT => 20,
    25.     CURLOPT_SSL_VERIFYPEER => false,
    26.     CURLOPT_TIMEOUT => 20,
    27.     CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
    28. );
    29. // curl
    30. $curl = curl_init();
    31. curl_setopt_array($curl, $options);
    32. $html = curl_exec($curl);
    Парсится только "test"
    И все, хотя при просмотре нетворка в хроме функция отдает ProgramInfo json массив
     
  2. Nikitka21

    Nikitka21 Новичок

    С нами с:
    8 фев 2018
    Сообщения:
    2
    Симпатии:
    0
    А если нужно спарсить даты и количество мест с сайта туры которых я продаю? Это же не воровство контента?
    Может кто-нибудь подскажет?
    Как забрать c сайта https://magput.ru/?id=10&viewprog=13870
    Даты из id=pricelist