Парсинг яндекс-такси

231
02 марта 2018, 18:27

Хотел попробовать спарсить цену на сайте

Чтобы выполнить запрос, который отвечает за ответ цены, необходимо сначала получить уникальный id. Id можно получить по этой ссылке, но для начала необходимо сформировать куку yandex_uid.

Итого, получается 3 этапа.

  1. Делаем запрос на https://taxi.yandex.ru/, получаем куку yandex_uid
  2. Отправляем эту куку на https://taxi.yandex.ru/3.0/launch/ , получаем уникальный id
  3. Отправляем id, координаты и т.п на https://taxi.yandex.ru/3.0/routestats/, получаем цену

Проблема возникает на шаге 2. Постоянно получаю ошибку 400.

Вот код:

$client->createRequest()
        ->setMethod('POST')
        ->setUrl('https://taxi.yandex.ru/3.0/launch/')
        ->setHeaders(['Accept' => 'application/json, text/javascript, */*; q=0.01'])
        ->addHeaders(['Accept-Encoding' => 'gzip, deflate, br'])
        ->addHeaders(['Accept-Language' => 'ru_RU'])
        ->addHeaders(['Cache-Control' => 'no-cache'])
        ->addHeaders(['Connection' => 'keep-alive'])
        ->addHeaders(['Content-Length' => ob_get_length()])
        ->addHeaders(['Cookie' => 'yandexuid='.$cookies->getValue('yandexuid')])
        ->addHeaders(['Content-Type' => 'application/json'])
        ->addHeaders(['Host' => 'taxi.yandex.ru'])
        ->addHeaders(['Origin' => 'https://taxi.yandex.ru'])
        ->addHeaders(['Pragma' => 'no-cache'])
        ->addHeaders(['Referer' => 'https://taxi.yandex.ru/'])
        ->addHeaders(['User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'])
        ->addHeaders(['X-Compress' => null])
        ->addHeaders(['X-Requested-With' => 'XMLHttpRequest'])
        ->send();

Что я делаю не так? Подскажите, пожалуйста.

READ ALSO
Преобразовать в массив json

Преобразовать в массив json

Помогите преобразовать строку в массив json такой запрос

231
Не видит классы autoload.php

Не видит классы autoload.php

Вчера ВК выпустили PHP SDK для взаимодействия со своим APIЗашел в документацию и увидел, что библиотеку надо ставить через composer

263
Порядок выполнения функций в PHP

Порядок выполнения функций в PHP

Всем приветПо запросу "порядок выполнения", интернет показывает статьи с арифметическими действиями

254
Doctrine обратная связь

Doctrine обратная связь

Есть Entity User со связью

242