Wget аналог для linux

Отличная альтернатива для утилит 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.

Читайте также:  Нуц рк ncalayer для windows

Примеры использования утилиты 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 для выкачивания страниц?

Интересует, есть ли что-то удобнее wget для выкачивания отдельных страниц со всем содержимым? Желательно бы как-то помечать исходные ссылки на выкачанные компоненты.

А, блин, ключик -nv и лог сделают то, что нужно 🙂

Впрочем, ещё интересно подумать над тем, как бы б конвертировать неюникодные страницы в юникод автоматом.

Не вижу у wget’а ничего похожего на хуки.

Можно, конечно, анализировать логи, но как-то это…

Читайте также:  Как заморозить систему windows

чем тебя пайп не устраивает?

Иногда пользуюсь webhttrack, правда, не смотрел, что внутри

Задачу решил тупо сохраняя лог и анализируя его после wget’а.

Есть, правда, бяка. Если набор символов в имени не ограничивать, то со всякими спецсимволами ссылки не корректно конвертировать. Ограничивать ascii — начинается кошмар с русскими ссылками. В смысле, они превращаются в urlencoded, да ещё и кодированные wget’ом. Используешь resctrict windows — русский в массе своей ок, но некоторые буквы в кашу превращаются и тоже ссылки не работают.

Приходится пока с acsii.

Забыл уточнить — речь идёт о cli.

Делаю кеширование страниц, на которые ссылаются с форума 🙂

А то кошмар. Ссылки 10-летней давности почти никакие недоступны :-/ Среднее время доступности ресурса по ссылке просто удручает.

Посмотри, пожалуйста, man httrack. Там внизу примеры есть. Может, заинтересует.

В простом случае

Плюсую, пользовался им, давно правда, настроек у него много, задачи поставленные решал.

Пощупал. Блин, нет в жизни счастья.

1. Так и не понял, как добавлять новый файл в уже имеющуюся структуру. То есть скачиваю одну страницу, потом в том же каталоге пытаюсь скачивать другую — вся структура пересоздаётся, старая страница убивается.

2. Не нашёл простого монолитного лога — откуда, во что сохранилось, какой сервер возвращал заголовок (для ручного перекодирования, а то само оно не умеет :-/)

3. Не нашёл возможности добавить mime-характерное расширение к файлам с невменяемыми именами. А то как браузеру отличить .php, в котором CSS от .php, в котором JS?

Зато с юникодом в именах всё в порядке, да…

Так и не понял, как добавлять новый файл в уже имеющуюся структуру. То есть скачиваю одну страницу, потом в том же каталоге пытаюсь скачивать другую — вся структура пересоздаётся, старая страница убивается.

по-моему, update к целому или более общему.

Старые файлы оставит, новые обновит и добавит.

Не нашёл простого монолитного лога — откуда, во что сохранилось, какой сервер возвращал заголовок (для ручного перекодирования, а то само оно не умеет :-/)

В файле hts-log.txt и в каталоге hts-cache собираются логи.

Посмотреть, что вообще происходит в каталоге, можно запустить что-то типа того:

inotifywait -m -r -e create -e modify -e delete -e move /home/user @/home/user/.mozilla @/home/user/.gconfd @/home/user/.gconf @/home/user/.xsession-errors

где @что-то — исключенные из рассмотрения файлы.

У меня постоянно такое запущено.

по-моему, update к целому или более общему.

Ага, работает. Меня смутило, что в man’е он был в примере без параметров, типа, обновить текущий проект.

Но не годится. Он начинает обновлять и весь уже имеющийся архив. Когда страниц будут тысячи, это будут кранты 🙂

В файле hts-log.txt и в каталоге hts-cache собираются логи.

В принципе, вся информация есть, но собрать её трудно. Раскидана по файлам, формат неудобный.

В общем, я, походу, wget добил, вроде, до вида, который мне нужен. Будет, таки, на форуме постраничный кеш 🙂

Только надо добить давно назревшую отложенную компиляцию постингов (чтобы при постинге лепились простые данные, а тяжеловесные операции потом в фоне шли) и будет лепота 🙂

Читайте также:  Openssh windows как настроить

А вот это полезно, спасибо. Не для этой задачи, но вообще 🙂

Источник

Аналоги 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

Источник

Оцените статью