2016-02-22 5 views
1

Я ищу какой-нибудь способ войти в веб-страницу, содержащую эти данные:Использование Curl для входа на веб-странице

--- FORM report. Uses POST to URL "<form name="form1" method="post" >" 
Input: NAME="login" (TEXT) 
Input: NAME="password" (PASSWORD) 
Input: NAME="Submit" VALUE="Continue &raquo;" (IMAGE) 

Используя эту Curl команду:

curl -d "login=john" -d "password=venus123&submit=Continue%20&raquo;" URL 

я получаю это выход:

<h1>The page cannot be displayed</h1> 
The page you are looking for cannot be displayed because an invalid method (HTTP verb) was used to attempt access. 
<hr> 

Вы можете мне помочь?

+0

Используйте инструменты разработчика вашего веб-браузера и проверьте, что он отправляет при заполнении формы вручную. Тогда точно имитируйте это с помощью завитка. –

+0

Я использую Firefox HTTPFox, но я не могу поймать данные имени пользователя и пароля. К сожалению, я все еще не могу войти на эту страницу, используя cURL. – user2707722

+0

Ues Firefox's devtools, затем по точной просьбе щелкните правой кнопкой мыши и выберите «копировать как завиток» ... –

ответ

1

Это проблема с urlencoding данных. Вам необходимо изменить свой знак & до raquo с %26.

curl -d "login=john" -d "password=venus123&submit=Continue%20%26raquo;" URL 
                  ^^^ here 

Также, если ваш пароль содержит специальные символы, в этом случае вам также нужно выполнить urlencoding. Вы можете найти онлайн-urlencoder бесплатно в Интернете.

1

Вы комбинируете несколько полей формы в поле пароля "password=venus123&submit=Continue%20&raquo;". Часть после & - это другое поле под названием Submit.

curl -d "login=john" -d "password=venus123" --data-urlencode "Submit=Continue &raquo;" URL 

Обратите внимание, что я использовал --data-urlencode вместо -d, который выполняет также URL-кодирование.

0

Советую использовать Chrome dev. инструменты или Firebug для записи curl звонков. Затем становится проще использовать вновь записанные вами звонки.