cURL: Что это такое, и как его использовать для веб-скрапинга

cURL – это универсальная команда, которую используют программисты для сбора и передачи данных. Хотите узнать, как можно использовать cURL для веб-скрапинга? Читайте статью ниже
1 min read
data collection and web scraping with cURL

В этой статье вы узнаете:

Что такое cURL?  

cURL (также curl) — это инструмент командной строки, который можно использовать для передачи данных по сетевым протоколам. Имя cURL расшифровывается как «URL-адрес клиента». Эта команда использует синтаксис URL для передачи данных на серверы и с них. Curl работает на «libcurl» – бесплатной и простой в использовании библиотеке для передачи URL-адресов.

Почему выгодно использовать curl?  

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

  • Аутентификация пользователя
  • HTTP-сообщения
  • SSL-соединения
  • Поддержка прокси
  • FTP-загрузки

Простейший вариант использования curl –загрузка и выгрузка целых сайтов с использованием одного из поддерживаемых протоколов.

Curl протоколы  

Curl имеет длинный список поддерживаемых протоколов. Если вы не укажите конкретный протокол, по умолчанию будет использован HTTP. Список поддерживаемых протоколов:

DICTFILEFTP
FTPSGOPHERHTTP
HTTPSIMAPIMAPS
LDAPPOP3RTMP
RTSPSCPSFTP
SMBSMBSTELNET
TFTP

Установка curl

Команда curl установлена по умолчанию в дистрибутивах Linux.

Как проверить, установлен ли у вас curl?

1. Откройте консоль Linux

2. Введите ‘curl’ и нажмите ‘Ввод’.

3. Если у вас уже установлен curl, вы увидите следующее сообщение:

curl: try 'curl --help' for more information

4. Если у вас еще не установлен curl, вы увидите: ‘Команда не найдена’. Можете обратиться к своему дистрибутиву и установить его (подробнее об этом ниже).

Как использовать cURL

Синтаксис команды Curl довольно прост:

curl [options] [url]

Например, если вы хотите загрузить веб-страницу: webpage.com, просто выполните команду:

curl www.webpage.com

Затем команда выдаст вам исходный код страницы в окне терминала. Имейте в виду, если вы не укажете протокол, curl по умолчанию будет использовать HTTP. Посмотрите пример – как определить конкретные протоколы:

curl ftp://webpage.com

Если вы забудете добавить ://, curl догадается, какой протокол вы хотите использовать.

Мы кратко рассказали о базовом использовании команды. Вы можете самостоятельно найти список опций на сайте документации curl. Опции – это возможные действия, которые можно выполнить с URL. Когда вы выбираете вариант, он указывает curl, какое действие выполнить для указанного URL. URL сообщает cURL, где он должен выполнить это действие. Затем cURL позволяет вам перечислить один или несколько URL-адресов.

Чтобы загрузить несколько URL, добавьте к каждому префикс -0, за которым следует пробел. Вы можете сделать это в одной строке или написать отдельную строку для каждого URL. Также можете загрузить часть URL, перечислив страницы. Например:

 curl.exe -O http://example.com/page{1,4,6}.html

Сохранение загрузки  

Вы можете сохранить содержимое URL в файл с помощью curl двумя способами:

1. Метод -o: Позволяет добавить имя файла, в котором будет сохранен URL. Этот вариант имеет следующую структуру:

curl -0 filename.html http://example.com/file.html

2. -O method: Здесь вам не нужно добавлять имя файла, так как эта опция позволяет сохранить файл под именем URL. Чтобы использовать вариант, просто добавьте к URL-адресу префикс -O.

Возобновление загрузки  

Может случиться так, что загрузка остановится на середине. В этом случае перепишите команду, добавив в начале параметр -C :

curl -C - -O http://website.com/file.html

Почему curl так популярен?  

Curl — это инструмент, созданный для сложных операций. У него есть альтернативы, например, «wget» или «Kurly», которые хороши для более простых задач.

Curl – фаворит среди разработчиков, потому что доступен практически для каждой платформы. В некоторых установлен по умолчанию. Это означает, что какие бы программы/задания вы ни запускали, команды curl должны работать.

Кроме того, есть вероятность, что, если вашей ОС меньше десяти лет, у вас будет установлен curl. Вы также можете изучить документы в браузере и проверить документацию по curl. Если используете последнюю версию Windows, вероятно, у вас уже установлен curl. Если нет, прочтите эту статью на Stack Overflow, чтобы узнать больше.

Использование cURL через прокси  

Некоторые люди могут предпочесть использовать cURL с прокси. Преимущества в этом случае следующие:  

  1. Повышение способности успешно управлять запросами данных из разных геолокаций.  
  2. Экспоненциальное увеличение количества текущих заданий с данными, которые можно выполнять одновременно.

Для достижения этой цели вы можете использовать возможности ‘-x’ и ‘(- – proxy)’, встроенные в cURL. Вот пример командной строки, которую вы можете использовать для интеграции используемого вами прокси с cURL:

$ curl -x 026.930.77.2:6666 http://linux.com/

В приведенном выше фрагменте кода – ‘6666’ – это номер порта, а ‘026.930.77.2’ – это IP-адрес.

  Полезно знать: cUrl совместим с большинством распространенных типов прокси, включая HTTP, HTTPS и SOCKS.  

Как изменить User-Agent  

User-Agents (пользовательский агент) – это характеристики, которые позволяют сайтам идентифицировать устройство, которое запрашивает информацию. Целевой сайт может потребовать определенные критерии, прежде чем вернуть данные. Это может относиться к типу устройства, ОС или браузеру. В этом сценарии компании, собирающие данные, захотят подражать идеальному «кандидату» своего целевого сайта.

Для примера предположим, что сайт, на который вы нацелились, «предпочитает», чтобы пользователи использовали браузер Chrome. Чтобы получить нужный набор данных с помощью cURL, необходимо эмулировать эту «черту браузера» так:

curl -A "Goggle/9.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Chrome/103.0.5060.71" https://getfedora.org/.

Веб-скрапинг с помощью cURL  

Совет для профессионалов: обязательно соблюдайте правила сайта и не пытайтесь получить доступ к защищенному паролем контенту, который по большей части является незаконным или не одобряется.

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

<?php

/**
 * @param string $url - the URL you wish to fetch.
 * @return string - the raw HTML response.
 */
function web_scrape($url) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    $response = curl_exec($ch);
    curl_close($ch);

    return $response;
}

/**
 * @param string $url - the URL you wish to fetch.
 * @return array - the HTTP headers returned.
 */
function fetch_headers($url) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    $response = curl_exec($ch);
    curl_close($ch);

    return $response;
}

// Example usage:
// var_dump(get_headers("https://www.example.com"));
// echo web_scrape('https://www.example.com/');

?>

При использовании curl для сканирования веб-страницы есть три опции:

  • Инициализирует сеанс
curl_init($url)
  • Выполняет
curl_exec()
  • Закрывает
curl_close()

Другие параметры, которые вы должны использовать:

  • Curlopt_url -> Задает URL, который вы хотите парсить
Curlopt_url
  • Curlopt_returntransfer -> Указывает curl сохранить просканированную страницу как переменную. (Это позволяет вам получить именно то, что вы хотели извлечь со страницы.)
CURLOPT_RETURNTRANSFER

Подведем итоги

cURL является мощным инструментом веб-скрапинга. Однако он требует от компаний использования драгоценного времени разработчиков как с точки зрения сбора данных, так и с точки зрения их очистки. Компания Bright Data выпустила полностью автоматизированный парсер веб-страниц, который не требует написания кода. Предприятия могут собирать данные с целевых веб-сайтов одним нажатием кнопки или просто заказывать нужный набор данных. Это освобождает DevOps и других членов технической команды, чтобы они могли сосредоточиться на разработке продуктов и устранении неполадок.  

Не уверены, какой продукт выбрать? Свяжитесь с отделом продаж, чтобы найти подходящее для вас решение.