- Отличная альтернатива для утилит wget и curl в Linux
- Установка HTTPie в Linux
- Примеры использования утилиты HTTPie
- Заключение
- Изучаем команду wget на 12 примерах
- 1. Загрузка одного файла
- 2. Загрузка файла и сохранение его с новым именем
- 3. Ограничение скорости загрузки файлов
- 4. Завершение прерванной загрузки
- 5. Фоновая загрузка файла
- 6. Загрузка нескольких файлов
- 7. Увеличение общего числа попыток загрузки файла
- 8. Загрузка файлов с FTP-сервера
- 9. Создание локальной копии веб-сайта
- 10. Загрузка с сайта только файлов определённого типа
- 11. Пропуск файлов определённого типа
- 12. Загрузка с использованием собственного .log-файла
- Итоги
- Аналоги Wget
- Альтернативы для Wget
- Что в этом списке?
Отличная альтернатива для утилит wget и curl в Linux
Оригинал: What is a good alternative to wget or curl on Linux
Автор: Dan Nanni
Дата публикации: 7 апреля 2015 г.
Перевод: А.Панин
Дата перевода: 13 августа 2016 г.
Если вам понадобится получить доступ к документам с веб-сервера в неинтерактивном режиме из терминала (например, загрузить веб-страницу или протестировать restful-API веб-сервиса), вы наверняка воспользуетесь таким инструментом, как wget или curl . Оба эти инструмента поддерживают большое количество аргументов командной строки и могут использоваться в неинтерактивном режиме для доступа к документам с веб-сервера при различных обстоятельствах. Однако, даже такие мощные инструменты могут успешно применяться лишь в том случае, если вы знаете, как с ними работать. Если же вы не являетесь экспертом в плане их аргументов, они смогут использоваться вами разве что в качестве простых утилит для загрузки файлов с веб-серверов.
Представленная разработчиками, как «curl-подобный инструмент для людей», утилита HTTPie была спроектирована с целью улучшения пользовательсских качеств таких утилит, как wget и curl . Главной целью ее разработчиков является предоставление пользователю возможности взаимодействия с веб-сервером с использованием командной строки максимально простым способом. Для этого в рамках HTTPie реализован выразительный, но в то же время простой и интуитивно понятный интерфейс командной строки. Кроме того, утилита выводит ответы веб-сервера с использованием цветовой разметки для улучшения их читаемости, а также поддерживает некоторые полезные механизмы, например, механизмы взаимодействия с сервером с использованием документов JSON и постоянных сессий, которые могут значительно оптимизировать ваш рабочий процесс.
Я уверен, что некоторые из вас скептически отнесутся к замене таких общедоступных и проверенных временем инструментов, как wget и curl , на совершенно неизвестную утилиту. Безусловно, с таким мнением сложно не согласиться, особенно в том случае, если вы работаете системным администратором и обслуживаете множество различных устройств. Однако, в случае разработчиков программного обеспечения и конечных пользователей продуктивность работы является решающим фактором. Если в мое поле зрения попадает удобная альтернатива для одного из стандартных инструментов системы, я обычно не вижу проблемы в его замене на более удобную версию в рамках моего рабочего окружения для экономии драгоценного времени. Лично я не вижу никакого смысла в предпочтительном и религиозном отношении к заменяемым инструментам. В конце концов, Linux всегда предоставляет пользователю выбор.
В рамках данной статьи я постараюсь рассказать об утилите HTTPie и продемонстрировать, почему я считаю ее дружелюбной альтернативой wget и curl .
Установка HTTPie в Linux
Утилита HTTPie разработана с использованием языка программирования Python, поэтому вы сможете установить ее практически в любой операционной системе (Linux, Mac OS X, Windows). Кроме того, она может быть установлена в формате пакета программного обеспечения из репозиториев большинства дистрибутивов Linux.
Debian, Ubuntu или Linux Mint:
В первую очередь следует подключить репозиторий EPEL, после чего выполнить следующую команду:
Альтернативный метод установки утилиты, который должен работать в любом дистрибутиве Linux, заключается в использовании утилиты pip.
Примеры использования утилиты HTTPie
После установки HTTPie вы можете использовать ее, инициируя исполнение команды http . Далее я покажу несколько полезных примеров использования этой команды http .
Пример 1: отправка пользовательских заголовков HTTP
Вы можете отправить серверу собственные заголовки HTTP в формате . Например, давайте отправим HTTP-запрос GET серверу www.test.com с стандартными заголовками «user-agent» и «referer» , а также с нашим собственным заголовком (а именно, «MyParam» ).
Обратите внимание на то, что для использования метода HTTP GET не нужно использовать каких-либо аргументов командной строки, позволяющих указать метод HTTP.
Результирующий запрос HTTP будет выглядеть следующим образом:
Вы можете использовать утилиту http в качестве инструмента для загрузки файлов с веб-серверов. При этом вам придется осуществить перенаправление потока стандартного вывода утилиты в файл следующим образом:
Пример 3: использование различных методов HTTP
Помимо используемого по умолчанию метода HTTP для получения данных от веб-сервера под названием GET вы можете использовать любые другие стандартные методы HTTP (такие, как PUT, POST, HEAD). Например, для отправки данных серверу с помощью запроса, использующего метод HTTP под названием PUT, следует выполнить следующую команду:
Пример 4: отправка содержимого формы
Отправка содержимого формы веб-серверу настолько проста, насколько проста следующая команда:
Параметр -f позволяет утилите http осуществить сериализацию данных полей формы и установить в качестве значения заголовка HTTP «Conetnt-Type» значение «application/x-www-form-urlencoded; charset=utf-8» .
Результирующий HTTP-запрос POST будет выглядеть следующим образом:
HTTPie имеет встроенный механизм для работы с документами формата JSON, который может оказаться очень полезным ввиду роста популярности формата JSON в качестве формата документов для обмена данными. Фактически, стандартным типом содержимого запросов (обозначаемым с помощью заголовка «content-type» ), используемым HTTPie, является JSON. Таким образом, в том случае, если вы отправляете данные полей формы без указания типа содержимого запроса, будет осуществляться сериализация этих данных в объект JSON.
Пример 6: перенаправление ввода
Еще одной удобной функцией HTTPie является возможность перенаправления ввода, благодаря которой вы можете передавать в качестве тела HTTP-запроса буферизованные данные. Например, вы можете использовать такую команду:
Заключение
В данной статье я познакомил вас с утилитой HTTPie, которая является альтернативой для таких известных утилит, как wget и curl . Помимо простых примеров использования этой утилиты, приведенных в статье, вы также можете ознакомиться с большим количеством интересных способов ее использованию на официальном сайте HTTPie . Хотел бы еще раз напомнить, что любой мощный инструмент может успешно применяться лишь в том случае, если вы знаете, как работать с ним. Лично я уже высоко оценил все возможности HTTPie в процессе поиска механизмов простого тестирования сложных API веб-приложений. А что думаете о ней вы?
Источник
Изучаем команду wget на 12 примерах
Все мы иногда качаем файлы из интернета. Если для этого использовать программы с графическим интерфейсом, то всё оказывается предельно просто. Однако, при работе в командной строке Linux дело несколько усложняется. Особенно — для тех, кто не знаком с подходящими инструментами. Один из таких инструментов — чрезвычайно мощная утилита wget, которая подходит для выполнения всех видов загрузок. Предлагаем вашему вниманию двенадцать примеров, разобрав которые, можно освоить основные возможности wget.
1. Загрузка одного файла
Если всё, что нужно — это загрузка одного файла, нам подойдёт следующая конструкция:
После ввода такой команды начнётся скачивание Nagios Core. В ходе этого процесса можно будет видеть данные о загрузке, например — сведения о том, какой объём данных уже загружен, текущую скорость, и то, сколько времени осталось до конца загрузки.
2. Загрузка файла и сохранение его с новым именем
Если мы хотим сохранить загруженный файл под именем, отличающимся от его исходного имени, нам пригодится команда wget с параметром -O :
При таком подходе загруженный файл будет сохранён под именем nagios_latest .
3. Ограничение скорости загрузки файлов
При необходимости скорость загрузки файлов с помощью wget можно ограничить. В результате эта операция не будет занимать весь доступный канал передачи данных и не повлияет на другие процессы, связанные с сетью. Сделать это можно, используя параметр —limit-rate и указав ограничение скорости, выраженное в байтах (в виде обычного числа), килобайтах (добавив после числа K ) или мегабайтах ( M ) в секунду:
Здесь задано ограничение скорости загрузки, равное 500 Кб/с.
4. Завершение прерванной загрузки
Если в ходе загрузки файлов эта операция была прервана, можно возобновить загрузку с помощью параметра -c команды wget :
Если этот параметр не использовать, то загрузка недокачанного файла начнётся сначала.
5. Фоновая загрузка файла
Если вы загружаете файл огромного размера и хотите выполнять эту операцию в фоне, сделать это можно, используя параметр -b :
6. Загрузка нескольких файлов
Если имеется список URL файлов, которые надо загрузить, но вам не хочется вручную запускать загрузки этих файлов, можно использовать параметр -I . Однако, перед тем, как начинать загрузку, нужно создать файл, содержащий все адреса. Например, сделать это можно такой командой:
В этот файл нужно поместить адреса — по одному в каждой строке. Далее, осталось лишь запустить wget , передав этой утилите только что созданный файл со списком загрузок:
Выполнение этой команды приведёт к поочерёдной загрузке всех файлов из списка.
7. Увеличение общего числа попыток загрузки файла
Для того, чтобы настроить число повторных попыток загрузки файла, можно использовать параметр —tries :
8. Загрузка файлов с FTP-сервера
Команда загрузки файла с анонимного FTP-сервера с помощью wget выглядит так:
Если для доступа к файлу требуются имя пользователя и пароль, то команда примет такой вид:
9. Создание локальной копии веб-сайта
Если нужно загрузить содержимое целого веб-сайта, сделать это можно, воспользовавшись параметром —mirror :
Обратите внимание на дополнительные параметры командной строки:
- -p : производится загрузка всех файлов, необходимых для корректного отображения HTML-страниц.
- —convert-links : ссылки в документах будут преобразованы для целей локального просмотра сайта.
- -P /home/dan : материалы будут сохранены в папку /home/dan .
10. Загрузка с сайта только файлов определённого типа
Для того, чтобы загрузить с сайта только файлы определённого типа, можно воспользоваться параметрами -r -A :
11. Пропуск файлов определённого типа
Если вы хотите скопировать целый веб-сайт, но при этом вам не нужны файлы определённого типа, отключить их загрузку можно с помощью параметра —reject :
12. Загрузка с использованием собственного .log-файла
Для того, чтобы загрузить файл и использовать при этом собственный .log -файл, воспользуйтесь параметром -o и укажите имя файла журнала:
Итоги
Wget — довольно простая в использовании, но весьма полезная утилита Linux. И, на самом деле то, о чём мы рассказали — лишь малая часть того, что она умеет. Надеемся, этот обзор поможет тем, кто не был знаком с wget, оценить эту программу, и, возможно, включить её в свой повседневный арсенал инструментов командной строки.
Уважаемые читатели! Пользуетесь ли вы инструментами командной строки Linux для загрузки файлов? Если да — просим о них рассказать.
Источник
Аналоги Wget
GNU Wget — это бесплатный программный пакет для извлечения файлов с использованием HTTP(S) и FTP, наиболее широко используемых интернет-протоколов. Это неинтерактивный инструмент командной строки, поэтому его легко вызывать из сценариев, «отложенных» команд, терминалов без поддержки X-Windows и т.д.
Альтернативы для Wget
Android iOS (iPhone / iPad)
aria2 — это кроссплатформенная утилита загрузки с несколькими протоколами и несколькими источниками.
- Бесплатная Windows Android Mac OS
aria2 — это кроссплатформенная утилита загрузки с несколькими протоколами и несколькими источниками. Поддерживаемые протоколы: HTTP (S), FTP, BitTorrent (DHT, PEX, MSE / PE) и Metalink.
uGet — это легкий и полнофункциональный менеджер загрузок для Linux и Windows.
- Бесплатная Windows Android
uGet — это легкий и полнофункциональный менеджер загрузок для Linux и Windows. uGet позволяет загружать несколько параллельных потоков для ускорения загрузки, помещения файлов в очередь загрузки, приостановки и возобновления загрузки, расширенного управления категориями, интеграции с браузером, мониторинга буфера обмена, пакетной загрузки, локализации на более чем 25 языках и много других функций.
cURL — проект компьютерного программного обеспечения, предоставляющий библиотеку и инструмент командной строки для передачи данных.
- Бесплатная Windows Mac OS
cURL — это компьютерный программный проект, предоставляющий библиотеку и инструмент командной строки для передачи данных с использованием различных протоколов с синтаксисом URL: поддержка FTP, FTPS, SCP, SFTP, HTTP, HTTPS, TFTP, TELNET, DICT, LDAP, LDAPS и FILE.
Cyotek WebCopy — это бесплатный инструмент для локального копирования веб-сайтов.
Cyotek WebCopy — это бесплатный инструмент для локального копирования веб-сайтов на жесткий диск для просмотра в автономном режиме.
UnMHT добавляет поддержку чтения / записи MHT-файлов в Firefox.
- Бесплатная Windows Mac OS
UnMHT добавляет поддержку чтения / записи MHT-файлов в Firefox.
httpie — HTTPie — это CLI, похожий на cURL инструмент для людей.
- Бесплатная Windows Mac OS
httpie — HTTPie — это CLI, похожий на cURL инструмент для людей.
PageArchiver (ранее Scrapbook for SingleFile) — это расширение Chrome, которое помогает архивировать веб-страницы для чтения в автономном режиме.
- Бесплатная Windows Mac OS
PageArchiver (ранее Scrapbook for SingleFile) — это расширение Chrome, которое помогает архивировать веб-страницы для чтения в автономном режиме.
MacOS-приложение, которое автоматически загружает сайты из Интернета.
SiteSucker — это приложение для Macintosh, которое автоматически загружает веб-сайты из Интернета. Это выполняется путем асинхронного копирования веб-страниц сайта, изображений, PDF-файлов, таблиц стилей и других файлов на локальный жесткий диск, дублируя структуру каталогов сайта.
RESTClient может использоваться для тестирования различных HTTP-коммуникаций и веб-сервисов RESTful.
- Бесплатная Windows Mac OS
RESTClient может использоваться для тестирования различных HTTP-коммуникаций и веб-сервисов RESTful. Дружественный графический интерфейс, богатые функциональные возможности.
Что в этом списке?
В списке находится программы которые можно использовать для замены Wget.
Это аналоги похожие по функционалу на Wget, которые заменяют программу частично или полностью. Этот список содержит 9 замен.
С помощью пользователей мы собираем каталог похожих друг на друга программ, чтобы вы могли подобрать альтернативу и скачать их. На сайте можно скачать популярные программы для Windows, Mac Os, Android и iPhone
Источник