@aopil

Почему не получаю результат при POST запросе?

Отправляю POST запрос:
$ch = curl_init($url);
curl_setopt_array($ch, array(
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => 'token='.$token.'&pdoduct=1&g-recaptcha-response=123',
    CURLOPT_TIMEOUT        => 60,
    CURLOPT_CONNECTTIMEOUT => 30,
    CURLOPT_COOKIEFILE     => $cookie,
    CURLOPT_COOKIEJAR      => $cookie,
    CURLOPT_ENCODING       => 'gzip, deflate'
));

Получаю ответ 200, далее смотрю html результат, вся страница загрузилась, но отсутствует ожидаемый результат, т.е. вся страничка загрузилась, но отсутствует нужный div, в котором обычно отображается результат запроса.

В браузере просматривая инспектора в Network я просмотрел ответ на запрос, и там нужный div есть.
Далее, я заметил такой ньюанс:
Не закрывая инспектора, в Network я обновляю страничку через F5 и в вижу POST запрос, вместо обычного обновления страницы, и я просматриваю ответ на этот POST запрос, и на удивление я НЕ вижу там тот самый div, уточню, что все параметры в POST запросе также передаются.

Вопрос: Как так? Казалось бы, мы отправляем одинаковые POST запросы, но обновляя через F5 - нужного div нету, как собственно и при отправке через CURL.

Кто может объяснить с чем связано это явление?
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 2
@Stalinko
PHP'шник и фрилансер до мозга костей
Нужный div генерируется через JS на лету. Открой исходный код в браузере - если там этого div нет, то я прав.
Соответственно, так просто скрейпить данную страницу не получится. Надо раскуривать, откуда берётся этот див и данные и в нём.
Ответ написан
@galaxy
CURLOPT_POSTFIELDS => 'token='.$token.'&pdoduct=1&g-recaptcha-response=123',

Токен рекапчи протухает, скорее всего.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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