Помогите повторить запрос на PHP

D
На сайте с 28.06.2008
Offline
1108
295

Хочу для своего сайта вытащить эти приборы https://www.boschtoolservice.com/ru/ru/bosch-pt/spareparts/search-results&nbsp

Результаты там в JSON   (нужно страну выбрать EU)

Нужные данные в этом JSON

Так вот копирую запрос, 

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://www.boschtoolservice.com/ru/ru/bosch-pt/spareparts/search-results');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"filter\":{\"country\":[\"2\"]},\"pageNumber\":1,\"resultsPerPage\":\"10\",\"searchTerm\":\"\",\"sortBy\":\"bareToolNumber\"}&{\"filter\":{\"country\":[\"2\"]},\"pageNumber\":1,\"resultsPerPage\":\"10\",\"searchTerm\":\"\",\"sortBy\":\"bareToolNumber\"}&{\"filter\":{\"country\":[\"2\"]},\"pageNumber\":4,\"resultsPerPage\":\"10\",\"searchTerm\":\"\",\"sortBy\":\"bareToolNumber\"}&{\"filter\":{\"country\":[\"2\"]},\"pageNumber\":5,\"resultsPerPage\":\"10\",\"searchTerm\":\"\",\"sortBy\":\"bareToolNumber\"}&{\"filter\":{\"country\":[\"2\"]},\"pageNumber\":4,\"resultsPerPage\":\"10\",\"searchTerm\":\"\",\"sortBy\":\"bareToolNumber\"}");
curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');

$headers = array();
$headers[] = 'Connection: keep-alive';
$headers[] = 'Pragma: no-cache';
$headers[] = 'Cache-Control: no-cache';
$headers[] = 'Sec-Ch-Ua: \" Not A;Brand\";v=\"99\", \"Chromium\";v=\"96\", \"Yandex\";v=\"22\"';
$headers[] = 'Sec-Ch-Ua-Mobile: ?0';
$headers[] = 'Sec-Ch-Ua-Platform: \"Windows\"';
$headers[] = 'Dnt: 1';
$headers[] = 'Upgrade-Insecure-Requests: 1';
$headers[] = 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.116 YaBrowser/22.1.1.1544 Yowser/2.5 Safari/537.36';
$headers[] = 'Accept: application/json, text/plain, */*';
$headers[] = 'Sec-Fetch-Site: same-origin';
$headers[] = 'Sec-Fetch-Mode: cors';
$headers[] = 'Sec-Fetch-User: ?1';
$headers[] = 'Sec-Fetch-Dest: empty';
$headers[] = 'Referer: https://www.boschtoolservice.com/ru/ru/bosch-pt/spareparts/search-results';
$headers[] = 'Accept-Language: ru,en;q=0.9,ba;q=0.8,it;q=0.7,pt;q=0.6,de;q=0.5,uk;q=0.4,cy;q=0.3,mt;q=0.2,sr;q=0.1,bg;q=0.1';
$headers[] = '
Cookie: _ENV["XSRF-TOKEN=04828882-2ee0-4d59-96ed-8b1dd0965a04; 
PT_AS_BOSCH-PT_CART_RU_ID='.$match[1].'; 
bosch-privacy-v2={%22comfort%22:1%2C%22marketing%22:1%2C%22processing%22:%222022-02-02T09:02:59.776Z%22}; 
CONSENTMGR=ts:1643792579777%7Cconsent:true; 
utag_main=_sn:1_se:26_ss:0_st:1643798028000ses_id:1643792579779%3Bexp-session_pn:19%3Bexp-sessionv_id:017eb9acb75800194d639df8e08505094004908c00bd0"]';
$headers[] = 'Origin: https://www.boschtoolservice.com';
$headers[] = 'Authority: btm.bosch.com';
$headers[] = 'X-Xsrf-Token: 04828882-2ee0-4d59-96ed-8b1dd0965a04';
$headers[] = 'Content-Type: application/json;charset=UTF-8';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);

var_dump($result);
$match[1]

это я сперва из кода страницы выдергиваю  cartID

но в итоге получаю пустой ответ

Не пойму где ошибаюсь?


D
На сайте с 28.06.2008
Offline
1108
#1
XSRF-TOKEN при первом запросе сохранил в кукис, он потом не меняется, так что подставляю верный
W1
На сайте с 22.01.2021
Offline
306
#2
Dram #:
XSRF-TOKEN при первом запросе сохранил в кукис, он потом не меняется, так что подставляю верный

Ага, только в запросе вместо куки какую-то хрень передаёшь.

Мой форум - https://webinfo.guru –Там я всегда на связи
D
На сайте с 28.06.2008
Offline
1108
#3

Я добавил чтение куки во второй запрос (ту что сохранил в первом)

curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'] . 'D:\OpenServer\domains\localhost\111\cookie.txt');

не помогло

lutskboy
На сайте с 22.11.2013
Offline
186
#4

ето что вообще такое

$_SERVER['DOCUMENT_ROOT'] . 'D:\OpenServer\domains\localhost\111\cookie.txt'

лучше __DIR__.'/cookie.txt' 

cookie.txt в той же папке что и скрипт

Aisamiery
На сайте с 12.04.2015
Offline
318
#5
Dram #:

Я добавил чтение куки во второй запрос (ту что сохранил в первом)

не помогло

var_dump(file_exists($_SERVER['DOCUMENT_ROOT'] . 'D:\OpenServer\domains\localhost\111\cookie.txt'));

Для начала попробуйте, а потом говорите что не помогло =)

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий