Авторизация через cURL для скачивания прайса
С cURL практически не работал, но появилась задача скачивать прайс-лист у поставщика, который доступен только после авторизации на сайте.
Сайт snt[точка]su.
Прайс: http://snt[точка]su/profile/price/personal/
В браузере проследил такую информацию при логине:
Последние 2 строчки - Form Data
Request URL: http://snt[точка]su/profile/login
Request Method: POST
Status Code: 200 OK
Remote Address: 92.42.14.173:80
Referrer Policy: no-referrer-when-downgrade
cache-control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
content-encoding: gzip
content-type: text/html; charset=UTF-8
date: Fri, 10 Apr 2020 16:26:01 GMT
expires: Thu, 19 Nov 1981 08:52:00 GMT
pragma: no-cache
set-cookie: probably_city=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/
set-cookie: wsr_nocache=1; expires=Sun, 31-May-2020 04:00:00 GMT; path=/
transfer-encoding: chunked
vary: Accept-Encoding
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7
Connection: keep-alive
Content-Length: 46
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Cookie: _ga=GA1.2.1605292155.1586442468; _gid=GA1.2.1409407519.1586442468; _ym_uid=1586442468979708454; _ym_d=1586442468; wsr_nocache=1; city=293; _ym_isad=2; PHPSESSID=otrj18oj8pbb07a0u8oucthnq7; _gat=1; _ym_visorc_36243870=w
Host: snt[точка]su
Origin: http://snt[точка]su
Referer: http://snt[точка]su/profile
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36
X-Requested-With: XMLHttpRequest
tel: %2B7+(964)+411-29-12
password: QFITFMZF1001
Пробовал уже десятки вариантов с разных форумов, но результат один - вижу ту же страницу входа, авторизация не происходит
Последний испробованный код:
<?php
function login($url,$login,$pass){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// откуда пришли на эту страницу
curl_setopt($ch, CURLOPT_REFERER, $url);
// cURL будет выводить подробные сообщения о всех производимых действиях
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"tel=".$login."&password=".$pass);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (Windows; U; Windows NT 5.0; En; rv:1.8.0.2) Gecko/20070306 Firefox/1.0.0.4");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
//сохранять полученные COOKIE в файл
curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt');
$result=curl_exec($ch);
curl_close($ch);
return $result;
}
$url="http://snt[точка]su/profile/";
$login="%2B7+(964)+411-29-12";
$pass="QFITFMZF1001";
echo login($url,$login,$pass);
?>
Если в $url ставлю http://snt[точка]su/profile/login, то получаю 404 ошибку
Данные аккаунта изменены
В cookie пишется это:
# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.
snt[точка]su FALSE / FALSE 0 PHPSESSID cdhdjccinnds9ovolav643hku0
snt[точка]su FALSE / FALSE 1618073340 probably_city 293
snt[точка]su FALSE / FALSE 1590897600 wsr_nocache 1
Буду благодарен за любую помощь и подсказки.
Пс. Прошу прощения, что получилось так "обширно" :(