У меня есть разрешение с сайта, чтобы очистить его. Я использую CURL и xpath для захвата страниц и очистки данных о продукте. Этот веб-сайт только что изменил его, поэтому варианты продуктов находятся в выпадающем списке Когда пользователь выбирает опцию, он отправляет сообщение на ту же страницу с кучей данных формы и снова получает почти целую страницу, которую он загружает. Для меня важно то, что он загружает цену варианта продукта, а затем в раскрывающемся списке выбирается вариант.
У меня есть все данные формы в виде полей, которые я передаю в POSTFIELDS curopt. Я передаю все заголовки в CUROPT_HTTPHEADER. НО, когда html возвращается, у него есть цена по умолчанию и никакие выбранные опции. Что я делаю не так ???
$cW = curl_init($theURL);
$headers = array(
'Accept' => '*/*',
'Accept-Encoding' => 'gzip, deflate, br',
'Accept-Language' => 'en-US,en;q=0.9',
'Cache-Control' => 'no-cache',
'Connection' => 'keep-alive',
'Content-Length' => '62988',
'Content-Type' => 'application/x-www-form-urlencoded; charset=UTF-8',
'Cookie' => 'bunch of cookie info',
'Host' => 'www.thewebsite.com',
'Origin' => 'https://www.thewebsite.com',
'Referer' => "$theURL",
'Sec-Fetch-Dest' => 'empty',
'Sec-Fetch-Mode' => 'cors',
'Sec-Fetch-Site' => 'same-origin',
'X-MicrosoftAjax' => 'Delta=true',
'X-Requested-With' => 'XMLHttpRequest',
'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36',
);
curl_setopt($cW, CURLOPT_HEADER, false);
curl_setopt($cW, CURLOPT_HTTPHEADER, $headers);
curl_setopt($cW, CURLOPT_RETURNTRANSFER, true);
curl_setopt($cW, CURLOPT_TIMEOUT, 10);
curl_setopt($cW, CUROPT_POST, 1);
curl_setopt($cW, CUROPT_POSTFIELDS, $postFields);
// Grab the data.
$html = curl_exec($cW);
$ postFields - это массив всех полей записей. Я попытался запустить его через оба из них:
return json_encode($fields);
// return http_build_query($fields, '', '&');