Содержание
curl — мощная утилита командной строки для связи с веб-сервером через терминал. Часто ее путают с популярной командой wget, поскольку обе они могут загружать и скачивать содержимое на сервер и работают кроссплатформенно. Итак, чтобы прояснить ситуацию, вот различия между wget и Curl и некоторыми популярными командами Curl, которые вам следует знать для начала.
curl против wget
На первый взгляд, и curl, и wget можно рассматривать как утилиту, которая может запрашивать и загружать контент с веб-серверов. Однако если копнуть глубже, то можно многое разгадать. Curl поддерживает множество других протоколов, от HTTPS, SFTP до IMAP, POP3 и т. д., тогда как wget поддерживает только HTTP, HTTPS и FTP.
Еще одно важное отличие заключается в том, что wget поддерживает рекурсивную загрузку, а Curl — нет. Таким образом, wget загрузит все с веб-страницы на страницы, с которыми она связана, тогда как Curl этого не сделает. С другой стороны, Curl основан на библиотеке libcurl, предоставляющей API. Следовательно, его можно легко использовать в сценариях командной строки, а также в приложениях с графическим интерфейсом. Вы можете думать о Curl как об урезанном веб-браузере с командной строкой, который может загружать и скачивать содержимое с веб-сервера.
Установка Curl в Windows
curl предварительно установлен в Unix- или Unix-подобных операционных системах и, следовательно, его можно напрямую использовать в macOS. Однако его также можно использовать в системах, отличных от Unix, таких как Windows, с помощью библиотеки libcurl.
В Windows все, что нам нужно сделать, это загрузить zip-файл libcurl и внести пару изменений, чтобы его можно было использовать через командную строку. Сначала загрузите zip-файл libcurl для своей 32- или 64-разрядной версии Windows соответственно. После загрузки файла извлеките его содержимое в папку. Для контекста ниже приведен снимок экрана извлеченного содержимого папки libcurl.
В извлеченной папке перейдите в папку bin и скопируйте следующие файлы: curl.exe и curl-ca-bundle. р>
Создайте папку под названием «curl» на диске «C:» и вставьте оба скопированных файла. Сделав это, вы можете напрямую использовать команду Curl, перейдя в папку «C:\curl» в командной строке.
В качестве альтернативы, если вы хотите запускать Curl непосредственно из cmd, я бы рекомендовал создать переменную среды. Для этого перейдите в меню «Пуск», введите «Изменить переменные системной среды» и нажмите на первый поиск.
Во всплывающем окне «Свойства системы» нажмите кнопку «Переменные среды» внизу.
На экране переменных среды нажмите кнопку «Создать» в верхней половине, чтобы добавить переменную среды пользователя.
На новом экране «Пользовательская переменная» добавьте следующую запись. Опубликуйте это, нажмите «ОК», а затем «Применить», чтобы сохранить изменения.
Variable name: curl Variable value: C:\curl
После этого нажмите «ОК» в меню «Переменная среды», чтобы сохранить изменения. Опубликовав это, вы сможете использовать команду Curl непосредственно в командной строке. Чтобы проверить это, введите следующую команду
curl --version
В качестве альтернативы вы также можете включить WSL для Windows и использовать Оболочка Ubuntu bash для запуска команд Curl из bash в Windows.
Лучшие команды Curl и способы их использования
Прежде чем мы начнем с команд, обратите внимание, что одинарные кавычки не работают в командной строке Windows. Вам придется преобразовать их в двойные кавычки. В оболочке bash это будет работать как обычно и с одинарными кавычками.
1. Просмотр HTML-кода
Самая основная утилита Curl — просмотр HTML-кода веб-страницы. Для этого добавьте к команде curl URL-адрес веб-страницы.
curl https://example.com
Эта команда отобразит вывод на терминале. Вы также можете загрузить содержимое файла, указав ключ «-O» перед URL-адресом. Это сохранит файл в вашей системе под тем же именем удаленного файла. Например, если имя HTML-файла на сервере — «home.html», он также будет сохранен локально как «home.html».
curl -O http://example.com/home.html
В качестве альтернативы вы можете хранить данные под собственными именами файлов. Для этого добавьте команду с меньшим регистром «-o», за которым следует имя файла.
curl http://example.com/home.html -o sample-file.txt
Вы также можете загрузить несколько файлов, указав несколько URL-адресов удаленных файлов.
2. Загрузка файлов с помощью Curl
Как и в случае с wget, вы можете загружать файлы с помощью Curl. Вы можете использовать ключ -o и указать имя файла, иначе файл будет сохранен с именем удаленного файла.
curl -O http://example.com/linux.iso
Например, следующая команда загрузит последнюю версию Linux mint с веб-сервера.
curl -O http://mirrors.gigenet.com/linuxmint/iso/stable/19.2/linuxmint-19.2-cinnamon-64bit.iso
Вы также можете использовать «-#» или «-progress-bar», чтобы отобразить прогресс в виде хешей.
3. Возобновление неудачной загрузки
Более того, если загрузка прервалась, возобновить ее можно с помощью переключателя «-C -». Команда будет выглядеть следующим образом.
curl -C http://example.com/linux.iso
Например, следующая команда возобновит загрузку с последней неудачной точки.
curl -C - -O http://mirrors.gigenet.com/linuxmint/iso/stable/19.2/linuxmint-19.2-cinnamon-64bit.iso
4. Информация об IP
Вы можете использовать следующую команду Curl, чтобы получить всю сетевую информацию о машине
curl ipinfo.io
В качестве альтернативы, если вы знаете IP-адрес и хотите получить другие сведения, такие как координаты местоположения, город, часовой пояс и т. д., вы можете использовать следующий вариант команды.
curl ipinfo.io/14.141.173.170
5. Отправлять электронные письма
Поскольку Curl поддерживает протоколы SMTP и POP3, вы можете использовать его даже для отправки электронной почты. Ниже приведен пример отправки электронного письма через Gmail.
Замените адрес электронной почты и пароль в следующей команде соответствующим образом.
curl --url "smtps://smtp.gmail.com:587" --ssl-reqd --mail-from "[email protected]" --mail-rcpt "[email protected]" --upload-file "C:\mail.txt" --user "[email protected]:password"
Убедитесь, что вам включите доступ для менее безопасных приложений аккаунт Google
6. Словарь
Протокол dict, предоставляемый libcurl, можно использовать для легкого определения значения слова. Источник значения: ВордНет . Ниже приведена команда, позволяющая сделать то же самое.
curl dict://dict.org/d:english-word
7. POST-команды
Вы можете отправлять POST-запросы на веб-сервер с помощью команды Curl. Синтаксис следующий
curl -X POST -F "name=user-name" -F "password=password" http://www.example.com
Данные формы POST также можно отправить в виде файла JSON. Для этого используйте следующую команду.
curl -H "Content-Type: application/json" https://www.example.com
8. Конвертировать файлы
Поскольку Curl поддерживает данные, состоящие из нескольких частей, вы можете использовать его для загрузки файлов и даже мгновенного их преобразования. Например, я хочу преобразовать этот HTML-файл в PDF. Следовательно, для этого я буду использовать API-интерфейс документвертера . API Docverter поддерживает несколько форматов файлов: HTML, Markdown и может конвертировать их в Docx, PDF, ePub и т. д.
В качестве альтернативы вы также можете использовать API Google Диска 3. для преобразования таблиц Excel, документов и т. д.
curl "http://c.docverter.com/convert" -F from=html -F to=pdf -F input_files[]=@your-file-name -o "output-file-name.pdf"
Заключительные слова
curl в основном используется в программах для обмена данными, файлами, формами. Помимо вышеупомянутой команды, существуют различные другие API, комбинации или сценарии оболочки, с которыми вы можете использовать Curl. Вы можете узнать больше об этом в репозиториях GitHub или Stack Overflow. Если у вас возникнут дополнительные проблемы или вопросы, касающиеся какой-либо команды Curl, дайте мне знать в комментариях ниже.
Читайте также: 14 лучших приложений для обучения программированию (Android и iOS)