cURL — это библиотека командной строки, которая используется для передачи данных с использованием нескольких протоколов, таких как FTP, HTTP, SMTP, IMAP, TELNET и т. д. Вы можете использовать ее для загрузки файлов, загрузки файлов и тестовые API.

Особенности cURL:
- Он обеспечивает поддержку SSL/TLS.
- Вы можете передавать файлы cookie.
- Передайте пользовательские заголовки, такие как User-Agent, Accept и т. д.
- Вы можете использовать прокси при отправке запроса на любой хост.
cURL можно использовать в любой операционной системе, такой как Windows, MacOS, Linux и т. д. cURL уже установлен во всех операционных системах, и вы можете проверить это, набрав curl или curl --help в командной строке.
Как использовать CURL?
Давайте разберемся, как можно использовать cURL на нескольких разных примерах.
Базовый синтаксис для использования cURL всегда будет одинаковым.
curl [options] [url]
Как сделать запрос GET с помощью cURL
Допустим, вы хотите сделать запрос HTTP GET на этот URL. Тогда это можно сделать просто так.
curl https://httpbin.org/ip
Ответ будет выглядеть так.

Как сделать запрос POST с помощью cURL
Предположим, вы хотите сделать POST-запрос к API, который возвращает данные JSON, и вот как вы можете это сделать.
curl -X POST -d "param1=value1" "https://httpbin.org/post" -H "accept: application/json"
Здесь -d представляет --data параметр командной строки. -X укажет, какой метод HTTP будет использоваться, а -H используется для отправки заголовков. accept: application/json — это способ сообщить серверу, что нам нужен ответ в формате JSON.

Как использовать аутентификацию с помощью cURL
curl -X GET -u admin:admin "https://httpbin.org/basic-auth/admin/admin" -H "accept: application/json"
- Мы использовали
-X, чтобы указать, какой метод HTTP мы собираемся использовать. В текущем сценарии мы делаем запрос GET. -uиспользуется для передачи учетных данных. В общем, это известно как Базовая аутентификация. Здесь имя пользователя admin и пароль также admin.- Затем мы передали наш целевой URL. По этому URL-адресу мы выполняем запрос GET.
- Последний шаг — передать заголовки. Для этого мы использовали
-Hдля передачи заголовка accept.
Ответ будет выглядеть так.

Это одни из немногих приложений, в которых cURL можно использовать непосредственно из CMD. Вы даже можете загружать данные с веб-сайта в файл или загружать файлы на произвольный FTP-сервер с помощью cURL. Давайте попробуем еще один пример.
Как загрузить файл на FTP-сервер с помощью cURL.
curl -T random_file.txt ftp://random.com/upload/
-Tиспользуется, чтобы указать cURL загрузить файл random_file.txt на случайный FTP или любой другой сервер.-Tэто--upload-file.
Надеюсь, у вас есть представление о том, как работает cURL. Теперь давайте посмотрим, как cURL можно использовать для парсинга веб-страниц.
Как использовать cURL для парсинга веб-страниц?
Допустим, вы хотите очистить amazon.com с помощью cURL, и ваша целевая страница — эта.
curl -X GET "https://www.amazon.com/dp/B09ZW52XSQ" -H "User-Agent: Mozilla/5.0 (Linux; Android 8.0.0; SM-G955U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Mobile Safari/537.36, Accept-Encoding:gzip,deflate"
С помощью этой команды вы сможете собирать данные с amazon. Но что, если вы хотите очистить миллионы таких страниц? В этом случае этот метод не будет работать, потому что amazon заблокирует ваш IP-адрес из-за чрезмерного HTTP-соединения через короткий промежуток времени. Единственный способ обойти это ограничение — использовать API парсинга веб-страниц или ротационный прокси.
Как использовать прокси с cURL?
Передача прокси при выполнении запроса GET через cURL очень проста.
curl -x <proxy-server>:<port> -U <username>:<password> <URL>
Здесь -x используется для передачи URL-адреса прокси-сервера или IP-адреса, а -U используется для передачи имени пользователя и пароля, если прокси-сервер требует аутентификации.
Давайте воспользуемся бесплатным прокси и поймем, как он может помочь вам парсить Amazon или любой другой подобный веб-сайт в масштабе.
Если вы зарегистрируетесь в Scrapingdog, вы найдете ключ API на своей панели инструментов. Этот API-ключ будет использоваться в качестве пароля для прокси-сервера. Вы можете прочитать документы перед использованием прокси, но использование довольно простое.

Давайте используем эту информацию, чтобы сделать запрос к amazon.
curl -x proxy.scrapingdog.com:8081 -U scrapingdog:YOUR-API-KEY https://www.amazon.com/dp/B09ZW52XSQ
Эта команда cURL будет делать запрос GET к Amazon с новым IP-адресом при каждом отдельном запросе. Это позволит избежать блокировки вашего конвейера данных от Amazon.
Что делать, если вы не хотите передавать прокси и обрабатывать повторные попытки в случае сбоя запроса? Что ж, тогда вы можете использовать Web Scraping API, который будет обрабатывать все повторные попытки, заголовки, безголовый хром и т. д.
Как использовать API веб-скрейпинга с cURL?
Использовать парсинг API с cURL очень просто. Все, что вам нужно сделать, это сделать запрос GET. Я уже объяснил вам, как вы можете сделать запрос GET, используя cURL.
Чтобы понять, как работает API, ознакомьтесь с документацией здесь.
URL-адрес API будет выглядеть так: https://api.scrapingdog.com/scrape?api_key=YOUR-API-KEY&url=https://www.amazon.com/dp/B09ZW52XSQ
Итак, команда cURL будет выглядеть так.
curl https://api.scrapingdog.com/scrape?api_key=YOUR-API-KEY&url=https://www.amazon.com/dp/B09ZW52XSQ
Это сделает запрос GET и вернет данные от amazon.
Преимущества использования API перед прокси
- Вам не нужно управлять безголовым хромом.
- Вам не нужно делать повторные попытки в случае сбоя запроса. API справится с этим самостоятельно.
- управление прокси будет осуществляться самим API. API имеет возможность самостоятельно выбирать правильный прокси в зависимости от веб-сайта, который вы хотите парсить.
Обработка ошибок и исключений с помощью cURL
Необходимо обрабатывать ошибки при очистке веб-страниц. Веб-скрейпинг может быть утомительным, если ошибки не обрабатываются должным образом. Давайте обсудим некоторые методы, чтобы справиться с такой ситуацией.
Как проверить код состояния запроса в cURL?
Как правило, мы всегда проверяем код состояния ответа, чтобы проверить, был ли запрос API успешным или нет. В cURL также можно отслеживать статус запроса.
curl -s -o /dev/null -w "%{http_code}" https://www.scrapingdog.com
-sпозволяет нам подавить любой вывод на консоль. Это означает, что вывод не будет отображаться на консоли.-oперенаправит вывод в /dev/null, а не в какой-либо файл. /dev/null — это своего рода черная дыра, которая отбрасывает любой ввод. Он используется, когда вы не хотите его видеть или хранить.-wвыведет код ответа на консоль. Это поможет нам определить, был ли запрос API успешным или нет.
Как повторить запрос с помощью cURL, если запрос не удался?
Что делать, если запрос не выполнен, и вам нужно повторить попытку вручную? Что ж, альтернативой этому является использование цикла for. Если запрос не выполнен, вы можете подождать 5 секунд, а если запрос был успешным, вы можете выйти из цикла for.
for i in {1..5}; do curl -s https://www.scrapingdog.com && break || sleep 5; done
Цикл будет выполняться пять раз с 5-секундным промежутком на случай, если запрос продолжит отказывать.
Заключение
Веб-скрейпинг с cURL — это весело и просто. В этой статье мы сосредоточились на понимании различных функций, которые может предложить cURL. Мы рассмотрели все темы, начиная с запроса GET и заканчивая обработкой ошибок. Конечно, cURL может предложить бесконечное количество функций.
cURL также можно использовать для анализа данных. В целом, это надежный инструмент с отличной поддержкой сообщества. Вы можете настроить его в соответствии с вашими требованиями. Вы можете автоматизировать веб-скрапинг с помощью cURL всего за несколько шагов.
Я надеюсь, вам понравится это небольшое руководство о том, как выполнять парсинг веб-страниц с помощью cURL. Было бы здорово, если бы вы могли поделиться этой статьей на своих социальных платформах.
Дополнительные ресурсы
Вот несколько дополнительных ресурсов, которые могут оказаться полезными во время изучения веб-страниц: