Попытка использовать cURL для входа на сайт, который использует форму, перенаправления и куки - PullRequest
0 голосов
/ 10 октября 2019

Я новичок в curl и несколько дней пытался пройти через форму входа с помощью curl. Я использую командную строку Windows, и curl находится в тупике.

Я думаю, что моя проблема - куки, редирект и идентификатор формы, которые могут измениться, я явно что-то упускаю. Я пробовал несколько способов, и пока ничего не получалось:

curl -d "name=user@email.com&password=userpassword&submit=Login" --dump-header заголовки https://shop.sandler.com/sandler-online-login?redirect=https%3A%2F%2Flearn.sandler.com%2F

curl -X POST -F 'name=user@email.com' -F 'pass = userpassword!'https://shop.sandler.com/sandler-online-login?redirect=https%3A%2F%2Flearn.sandler.com%2F

Попробовал сохранить куки, следуя этому примеру

curl - пользователь пользователя: pass --cookie-jar ./somefile https://example.com/a и затем прочитать их обратно при запускевторой: curl --cookie ./somefile https://example.com/b

Вот заголовок сообщения из Chrome, сохраненный как curl (CMD) - немного очищен для разборчивости:

curl "https://shop.sandler.com/sandler-online-login?redirect=https^%^3A^%^2F^%^2Flearn.sandler.com^%^2F" 
-H "Connection: keep-alive" 
-H "Cache-Control: max-age=0" 
-H "Origin: https://shop.sandler.com" 
-H "Upgrade-Insecure-Requests: 1" 
-H "Content-Type: application/x-www-form-urlencoded" 
-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" 
-H "Sec-Fetch-Mode: navigate" 
-H "Sec-Fetch-User: ?1" 
-H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3" 
-H "Sec-Fetch-Site: same-origin" 
-H "Referer: https://shop.sandler.com/sandler-online-login?redirect=https^%^3A^%^2F^%^2Flearn.sandler.com^%^2F" 
-H "Accept-Encoding: gzip, deflate, br" 
-H "Accept-Language: en-US,en;q=0.9" 
-H "Cookie: _ga=GA1.2.1689493960.1570630721; _gid=GA1.2.713060159.1570630721; intercom-id-mp6vs0zv=f7f114e9-7889-4dc7-9dd8-dfc87fee188c; _sm_au_c=iHVfMGH5brM56Tjj0c; has_js=1; _gcl_au=1.1.567505111.1570710259; _fbp=fb.1.1570710259879.302918887; _gat=1; SimpleSAMLSessionID=5c6b175d85d4450b5959faa12c0eb314; _gat_UA-11701837-1=1; intercom-session-mp6vs0zv=RGVPdUpYTFVaUjVWK09qWWxTSG9HUzIrbGVBTjNobmJILzZIUGxyUjdOLzZoMTBIbDR3VWQrbkpyaXZzOWV2cC0tTzlPbVI5ZVN6UW0yTjNER2FvTlN0UT09--10c4d72fc039cdb0844b1570a4da80889b11d6c5" 
--data "name=userWemail.com^&pass=userpass^&form_build_id=form-6VGuAiTFkw_C-OH09_yth15_nohd1PFFDAxbOYPBMvs^&form_id=user_login_block^&op=Log+in" --compressed

Вот HTML-форма.

<form action="sandler-online-login?redirect=https%3A%2F%2Flearn.sandler.com%2F" method="post" id="user-login-form" accept-charset="UTF-8"><div><div class="form-item form-type-textfield form-item-name">
  <label for="edit-name">E-mail or username <span class="form-required" title="This field is required.">*</span></label>
 <input placeholder="Email Address" type="text" id="edit-name" name="name" value="" size="15" maxlength="60" class="form-text required" />
</div>
<div class="form-item form-type-password form-item-pass">
  <label for="edit-pass">Password <span class="form-required" title="This field is required.">*</span></label>
 <input placeholder="Password" type="password" id="edit-pass" name="pass" size="15" maxlength="128" class="form-text required" />
</div>
<input type="hidden" name="form_build_id" value="form-6VGuAiTFkw_C-OH09_yth15_nohd1PFFDAxbOYPBMvs" />
<input type="hidden" name="form_id" value="user_login_block" />
<div class="form-actions form-wrapper" id="edit-actions"><input type="submit" id="edit-submit" name="op" value="Log in" class="form-submit" /><span class="get-password"><a href="/user/password" title="Request a new password via e-mail.">First time logging in? Request a password here.</a></span><span class="get-password forgot"><a href="/user/password" title="Request a new password via e-mail.">Forgot password?</a></span></div></div></form>

Я продолжу пытаться.

Буду признателен за любую помощь или руководство.

Спасибо.

...