Как войти в сеть с помощью curl?

Я заметил, что этому вопросу уже несколько лет, поэтому он может не помочь оригинальному плакату, но может помочь кому-то другому.

Первый :"диспетчер очереди задач" - это ответ. Он довольно мощный и есть в большинстве дистрибутивов Linux и Homebrew.

Но на многих серверах, которые я использую, я не могу устанавливать произвольные пакеты без особых хлопот, поэтому мне нужно что-то идеально чистое bash (или perl или подобное ).

После того, как я некоторое время боролся с этим, я придумал чистую реализацию bash, которая до сих пор работает нормально. Вы можете найти его по адресу https://github.com/sitaramc/notes/blob/master/bq, с документацией .

Это всего лишь один bash-скрипт, так что установка не составляет труда. Тем не менее, это нарушает ваши вторые и третьи требования (, но их реализация также должна быть тривиальной ).

Сценарий подробно прокомментирован, и вы сможете просмотреть его через несколько минут, если захотите.

0
15.07.2020, 16:50
1 ответ

Кажется, это работает:

curl -s -L --cookie-jar cookies.txt -d 'usr=admin&pwd=12345' http://testing-ground.scraping.pro/login?mode=login | grep -E 'DENIED|WELCOME'

Выход:

        <li>If you see <span class="success">WELCOME :)</span> then the user credentials were sent, the cookie was passed and HTTP redirect was processed</li>
        <li>If you see <span class="error">ACCESS DENIED!</span> then either you entered wrong credentials or they were not sent to the server properly</li>
<h3 class='success'>WELCOME :)</h3><a href='login'>&lt;&lt;&nbsp;GO BACK</a></div>
  • -sтихий режим без индикатора выполнения. Вывод отправляется на стандартный вывод.
  • -Lвыполните перенаправление 302
  • --cookie-jar cookies.txtиспользовать файлы cookie и записывать файлы cookie в файлcookies.txt
  • -d 'usr=admin&pwd=12345'Данные POST usr=adminиpwd=12345
2
18.03.2021, 23:19

Теги

Похожие вопросы