Главная страница » Узнайте, как использовать Curl с помощью этих полезных команд Curl

Узнайте, как использовать Curl с помощью этих полезных команд Curl

Автор: Евгений Стерликов

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.

извлеченные файлы библиотеки Curl lib

В извлеченной папке перейдите в папку bin и скопируйте следующие файлы: curl.exe и curl-ca-bundle.

скопируйте и вставьте файл curl.exe и сертификата

Создайте папку под названием «curl» на диске «C:» и вставьте оба скопированных файла. Сделав это, вы можете напрямую использовать команду Curl, перейдя в папку «C:\curl» в командной строке.

перейдите в каталог Curl через компакт-диск

В качестве альтернативы, если вы хотите запускать Curl непосредственно из cmd, я бы рекомендовал создать переменную среды. Для этого перейдите в меню «Пуск», введите «Изменить переменные системной среды» и нажмите на первый поиск.

поиск изменить переменную среды в меню «Пуск»

Во всплывающем окне «Свойства системы» нажмите кнопку «Переменные среды» внизу.

добавить переменные среды в Windows

На экране переменных среды нажмите кнопку «Создать» в верхней половине, чтобы добавить переменную среды пользователя.

добавить новую переменную среды

На новом экране «Пользовательская переменная» добавьте следующую запись. Опубликуйте это, нажмите «ОК», а затем «Применить», чтобы сохранить изменения.

Variable name: curl
Variable value: C:\curl

запись Curl в переменной среды

После этого нажмите «ОК» в меню «Переменная среды», чтобы сохранить изменения. Опубликовав это, вы сможете использовать команду Curl непосредственно в командной строке. Чтобы проверить это, введите следующую команду

curl --version

команда для проверки версии Curl

В качестве альтернативы вы также можете включить WSL для Windows и использовать Оболочка Ubuntu bash для запуска команд Curl из bash в Windows.

Лучшие команды Curl и способы их использования

Прежде чем мы начнем с команд, обратите внимание, что одинарные кавычки не работают в командной строке Windows. Вам придется преобразовать их в двойные кавычки. В оболочке bash это будет работать как обычно и с одинарными кавычками.

1. Просмотр HTML-кода

Самая основная утилита Curl — просмотр HTML-кода веб-страницы. Для этого добавьте к команде curl URL-адрес веб-страницы.

curl https://example.com

Вывод команды Curl, показывающий HTML-код веб-страницы в терминале

Эта команда отобразит вывод на терминале. Вы также можете загрузить содержимое файла, указав ключ «-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

возобновить загрузку с помощью команды Curl

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

отправлять электронную почту через Gmail, используя Curl, SSL и SMTP

6. Словарь

Протокол dict, предоставляемый libcurl, можно использовать для легкого определения значения слова. Источник значения: ВордНет . Ниже приведена команда, позволяющая сделать то же самое.

curl dict://dict.org/d:english-word

dict API, чтобы найти словарное слово с помощью команды Curl

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"

docverter конвертирует документы в PDF-файлы с помощью команды Curl

Заключительные слова

curl в основном используется в программах для обмена данными, файлами, формами. Помимо вышеупомянутой команды, существуют различные другие API, комбинации или сценарии оболочки, с которыми вы можете использовать Curl. Вы можете узнать больше об этом в репозиториях GitHub или Stack Overflow. Если у вас возникнут дополнительные проблемы или вопросы, касающиеся какой-либо команды Curl, дайте мне знать в комментариях ниже.

Читайте также: 14 лучших приложений для обучения программированию (Android и iOS)

Возможно вам будет интересно