Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2019, 19:37   #1
arashvg12
Новичок
Джуниор
 
Регистрация: 31.01.2019
Сообщений: 1
По умолчанию cURL сессия, и передача токена в заголовках

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

Бьюсь уже второй день никак не могу получить нужную информацию. Сначала получаю основную страницу, получаю из нее нужный мне ИД и токкен, сохраняю куки, формирую заголовки, и пробую делать запрос к второй странице, которая должна отдать массив в формате джосон, но в итоге получаю ответ 404....

уже наверное все перепробовал, может делаю что-то не так? может кто-то сталкивался с подобной проблемой?


Код:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://marathons.ahotu.com/event/casa-grande-half-marathon-5k');
//первая страница
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/32.0.1700.107 Chrome/32.0.1700.107 Safari/537.36');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'COOKI.txt'); 
curl_setopt ($ch, CURLOPT_COOKIEFILE, 'COOKI.txt'); 
$answer = curl_exec($ch);
if (curl_error($ch)) {
    echo curl_error($ch);
}

preg_match('/<meta name="csrf-token" content="(.*?)" \/>/is', $answer, $token); //получаю токен
preg_match('/<add-event-info id="(.*?)" locale="en"/is', $answer, $id); //получаю id


curl_setopt($ch, CURLOPT_URL, 'https://marathons.ahotu.com/media?a_event_id='.$id['1']);
curl_setopt($ch, CURLOPT_POST, false);

//Формирую заголовки

$headers[] = 'X-CSRF-Token:'.$token['1'];
$headers[] = 'Accept: application/json, text/plain, */*';
$headers[] = 'X-Requested-With: XMLHttpRequest';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

curl_setopt($ch, CURLOPT_REFERER,'https://marathons.ahotu.com/event/casa-grande-half-marathon-5k');     
curl_setopt($ch, CURLOPT_POSTFIELDS, "");
$answer = curl_exec($ch);
if (curl_error($ch)) {
    echo curl_error($ch);
}
echo $answer;
если входить на эту страницу через браузер, то тоже выдает ошибку 404, но если грузить основную страницу, то вся информация отображается

тоесть я через консоль просмотрел запросы

http://copy-lend.ru/work/pars-marathons/2.jpg

которые проходят при загрузке основной тсраницы https://marathons.ahotu.com/event/ca...lf-marathon-5k

там в процесе ее отображения идет ГЕТ запрос по адресу https://marathons.ahotu.com/media?a_event_id=12866

результатом этого запроса есть массив JSON, вопрос как получить такой же результат через cURL, в коде видно, что и токен и куки сохраняю и использую их, может что-то не так сделал, уже даже не знаю...
arashvg12 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в готовых сайтах в HTML АВТОМАТИЧЕСКИ быстро поменять каждую букву в текстах и заголовках на какой либо один символ, скажем "x"? axzzz HTML и CSS 0 24.09.2017 01:27
Curl error: with the SSL CA cert (php + curl + ssl) Hell Knight PHP 1 27.12.2014 14:30
Кол-во записей в заголовках веток dbTreeView Aleks_www Общие вопросы Delphi 0 01.12.2010 08:44
Передача файла в заголовках eleanorgt PHP 4 24.05.2010 19:55
Использовать сурский текст в Заголовках HellMercenariess PHP 1 02.08.2009 21:36