paint-brush
Введение в cURL: самый популярный HTTP-клиентк@brightdata
Новая история

Введение в cURL: самый популярный HTTP-клиент

к Bright Data6m2024/07/29
Read on Terminal Reader

Слишком долго; Читать

CURL — это инструмент командной строки и библиотека под названием libcurl, которая может похвастаться такими функциями, как поддержка SSL, туннелирование прокси-сервера, настройка заголовков и управление файлами cookie. cURL предустановлен в Linux, macOS и Windows, что делает его незаменимым инструментом для веб-запросов в командной строке.
featured image - Введение в cURL: самый популярный HTTP-клиент
Bright Data HackerNoon profile picture
0-item

Берегите свои клавиатуры, веб-разработчики! Если в вашем наборе инструментов нет cURL, возможно, вы упускаете один из самых мощных инструментов в игре. cURL — это не просто HTTP-клиент на основе CLI, это HTTP-клиент командной строки!


Присоединяйтесь к нам в путешествии в самое сердце cURL, где мы раскроем его тайны, изучим его возможности и предоставим вам знания, которые позволят вам использовать его как профессионал. Готовы раскрыть истинную мощь cURL? Давайте катиться!

Что такое CURL?

cURL , сокращение от «Клиент для URL-адресов», представляет собой программный проект, включающий в себя инструмент командной строки и библиотеку под названием libcurl. Этот дуэт специализируется на передаче данных с синтаксисом URL-адресов по широкому спектру сетевых протоколов. libcurl также может похвастаться такими функциями, как поддержка SSL, туннелирование прокси-сервера, настройка заголовков и управление файлами cookie.


Изучение полного списка протоколов, поддерживаемых libcurl, похоже на изучение цифрового алфавита. Сюда входят HTTP, HTTPS, FTP, SFTP, IMAP, POP3, SMTP, MQTT и десятки других. Список настолько длинный, что о некоторых из них вы, возможно, даже никогда не слышали — будьте уверены, вы не одиноки, если это так! 😜


Почему cURL достиг статуса рок-звезды среди разработчиков? Все дело в его кроссплатформенности! Благодаря привязкам libcurl, доступным на многих языках программирования (например, PHP, Python и Java), cURL легко интегрируется в различные технологические стеки. Популярность заключается в его повсеместности. cURL предустановлен в Linux, macOS и Windows, что делает его идеальным инструментом для веб-запросов в терминале на любом компьютере прямо из коробки.


Будь то получение веб-контента, тестирование API или загрузка файлов, cURL является важным инструментом в наборе инструментов любого веб-разработчика. Ничто не может сравниться с его беспрецедентной гибкостью и эффективностью. 🚀

cURL в действии: синтаксис и примеры

Итак, в вашем наборе инструментов есть cURL, но как его использовать? Простой! Запустите команду в своем терминале, следуя этому синтаксису:

 curl [options] [URL]

URL -адрес — это пункт назначения — онлайн-сервер или ресурс, на который вы ориентируетесь, а вот некоторые распространенные параметры cURL:

  • -X или --request : чтобы установить используемый метод HTTP.

  • -d или --data : для добавления данных в тело вашего запроса.

  • -b или --cookie : для управления файлами cookie для ваших запросов.

  • -H или --header : чтобы добавить собственный заголовок к вашим запросам. Для нескольких заголовков повторите параметры несколько раз. GET по умолчанию.

  • -v или --verbose : для печати подробной информации для отладки.


Чтобы узнать все доступные варианты, ознакомьтесь с документацией 🔎


⚠️ Примечание 1. Будьте осторожны: параметры curl в командной строке чувствительны. Таким образом, -x и -X имеют два разных значения.


⚠️ Примечание 2. В PowerShell curl является псевдонимом Invoke-Request . Чтобы использовать cURL в Windows, напишите curl.exe вместо curl .


Теперь будьте готовы увидеть синтаксис cURL в действии на реальных примерах, классифицированных по методам HTTP !

ПОЛУЧАТЬ

Вот как использовать cURL для получения исходного HTML целевой веб-страницы:

 curl "https://example.com/"


Под капотом cURL выполнит запрос GET, получит HTML-документ, связанный с веб-страницей https://example.com/ , и распечатает его в терминале.


Вы только что получили информацию с помощью одной команды. Впечатляет, не так ли? 🔥

ПОЧТА

В приведенном ниже примере cURL POST вызывается конечная точка https://api.example.com/users с данными JSON, необходимыми для создания нового пользователя:

 curl -X POST -H "Content-Type: application/json" -d '{"name": "John", "age": 30}' "https://api.example.com/users"


Обратите внимание на опцию -X , позволяющую указать желаемый метод HTTP. Обратите также внимание на использование опции -H , которая устанавливает заголовок Content-Type , и опции -d , определяющей необработанные данные JSON в строке. Ознакомьтесь со специальным руководством по запросам cURL POST !

ПОМЕЩАТЬ

Вызовы cURL PUT придерживаются следующего синтаксиса:

 curl -X PUT -d "name=Amazon%20Scraping&description=Automated%20data%20extraction%20for%20retrieving%20price%20data&status=completed" "https://api.example.com/projects/12"


HTTP-запрос обновит проект с идентификатором 12, используя предоставленные данные. В этом примере данные в теле запроса имеют формат application/x-www-form-urlencoded , в отличие от тела JSON, используемого в вызове cURL POST выше. Такая гибкость форматов данных демонстрирует адаптируемость cURL для различных случаев использования.

ПЛАСТЫРЬ

Хотите выполнить запрос PUT в cURL, чтобы обновить одно поле онлайн-ресурса? Вот как вы можете это сделать:

 curl -X PATCH -d "status=failed" "https://api.example.com/projects/12"

УДАЛИТЬ

cURL позволяет вам выполнить запрос DELETE и стереть существование существующих объектов, как показано ниже:

 curl -X DELETE https://api.example.com/user/431


После этого вызова API пользователя с идентификатором 431 больше не будет!

Расширенные параметры cURL

cURL предлагает множество опций, каждая из которых предлагает уникальные возможности для сложных случаев использования. Когда вы перемещаетесь по этой вселенной, выделяются некоторые расширенные параметры. Вот 10 самых полезных расширенных параметров cURL:


  • -o или --output : записать вывод в указанный локальный файл вместо<stdoud> .
  • -O или --remote-name : сохранить вывод в удаленный файл.
  • -i или --include : включить HTTP-заголовки ответа в выходные данные.
  • -u или --user : для аутентификации с использованием имени пользователя и пароля в формате user:password .
  • -L или --location : отслеживать перенаправления, когда сервер отвечает кодом ответа 3XX .
  • -e или --referer : для отправки информации о «странице реферера» на HTTP-сервер.
  • -x или --proxy : указать URL-адрес прокси-сервера, через который будет выполняться запрос. Для получения дополнительной информации прочитайте наше руководство о том , как использовать cURL с прокси-сервером , или посмотрите видео ниже.
  • --rate : чтобы указать максимальную частоту передачи, которую должен соблюдать cURL, чтобы избежать срабатывания мер по ограничению скорости.
  • --data-binary : отправить данные на сервер точно так, как указано, без какой-либо дополнительной обработки.
  • --compressed : запросить сжатый ответ и автоматически распаковать его содержимое.


Освоение этих возможностей позволит вам использовать cURL с беспрецедентным мастерством в постоянно развивающейся сфере веб-взаимодействий. 🌐

Как получить максимальную отдачу от cURL

cURL — мощный инструмент для веб-запросов, но его настройки по умолчанию делают его уязвимым для мер защиты от ботов. Рассмотрим, например, заголовок User-Agent по умолчанию:

 curl/XYZ


Узнайте, как изменить значение пользовательского агента cURL .


Теперь сравните это с последним пользовательским агентом Chrome:

 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36

Это совсем другая строка!


Использовать cURL без переопределения этого заголовка — все равно, что кричать целевому серверу: «Посмотри на меня! Я автоматизированный, небраузерный, робот-запрос!»

Неудивительно, что это может сработать защитные механизмы 😅. Также не забывайте, что cURL — это всего лишь HTTP-клиент. Таким образом, он не может работать со страницами, использующими JavaScript для рендеринга или получения данных.


👎Это плохо, если вы хотите использовать cURL для парсинга веб-страниц !👎


Стоит ли вам прекратить использовать cURL? Нисколько! Вам просто нужно снабдить его правильными инструментами! Чтобы раскрыть весь потенциал cURL и устранить его ограничения, либо интегрируйте его с:


  • Веб-прокси : чтобы получать новый, географически привязанный и надежный IP-адрес при каждом запросе; или
  • Инструмент веб-разблокировки : для доступа к общедоступным статистическим данным или веб-страницам, зависящим от JavaScript, а также в обход технологий обнаружения ботов.


Каким бы ни было ваше решение, Bright Data поможет вам! Компания Bight Data располагает одной из крупнейших и наиболее надежных прокси-сетей на рынке и имеет миллионы прокси-серверов, разбросанных по всему миру. Кроме того, его решение Web Unlocker позволяет вам получить доступ к любому общедоступному веб-сайту через cURL, независимо от уровня его защиты от ботов.

Заключение

cURL, рок-звезда HTTP-клиентов, — это популярный инструмент для разработчиков, выполняющих веб-запросы в терминале. Здесь вы освоили его использование с распространенными методами HTTP и изучили его разнообразные возможности. Это мощный инструмент, но давайте будем честными: большинство сайтов смогут обнаружить, что вы связываетесь с ними через cURL.


Не бойся! Противоядие простое: воспользуйтесь помощью веб-прокси или, для достижения оптимальных результатов, воспользуйтесь решением Web Unlocker от Bright Data . Присоединяйтесь к нашей миссии по демократизации Интернета, сделав его доступным для всех и везде — даже через могучий cURL!


До новых встреч, продолжайте свободно исследовать Интернет!