Я пытаюсь войти на этот сайт с помощью команд PHP curl:
https://users.premierleague.com/accounts/login/
Пока мой код выглядит так
`
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_URL => 'https://users.premierleague.com/accounts/login/',
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',
CURLOPT_POST => TRUE,
CURLOPT_POSTFIELDS => array(
'login' => 'username',
'password' => 'password',
'app' => 'plfpl-web',
'redirect_uri' => 'https://fantasy.premierleague.com/a/login'
),
CURLOPT_FOLLOWLOCATION => TRUE,
CURLOPT_COOKIESESSION => TRUE,
CURLOPT_COOKIEFILE => $cookie_file_path,
CURLOPT_COOKIEJAR => $cookie_file_path
));
$output = curl_exec($ch);
curl_close($ch);
`
Когда я запускаю это в браузере, он не входит в систему. Я получаю новый файл cookie в $cookie_file_path, но не могу войти в систему. Он просто распечатывает страницу входа в систему html. Я пробовал анализировать вещи с помощью вкладки сетей в инструментах разработчика Chrome, но я не стал мудрее. Я предполагаю, что это как-то связано с файлом cookie сеанса. Любая помощь очень ценится.
@AlexHowansky А, ладно, я не понимал, что это то, что делают токены CSRF. Я просто зря потратил часы, пытаясь это сделать :(
Ну, технически это не является их предназначением, но это хороший побочный эффект. Возможно, вы сможете запросить страницу, проанализировать токен, а затем отправить его обратно вместе с попыткой входа в систему.
Я удивлен, что нет никакого обходного пути. Я имею в виду, если я могу войти в систему с помощью браузера, обязательно должен быть способ входа в командную строку?
Многие сайты (например, те, которые содержат спортивные результаты) не хотят, чтобы их контент очищался автоматизированными процессами, и поэтому намеренно усложняют процесс входа в систему с помощью сценария.
Если они предлагают API, вам будет намного лучше.
Вы не трата в любое время выучили кучу классных вещей: D
@AlexHowansky, на самом деле я пытался получить доступ к их API. Однако некоторые страницы также находятся за стеной авторизации.
@IsThisJavascript ха-ха, я так полагаю. И я сделал мысленную заметку, что нужно уйти и узнать больше о токенах CSRF.






Этот сайт использует токены CSRF, чтобы вы не делали этого.