Wget linux с авторизацией

Содержание
  1. wget и авторизация
  2. Что делаю не так?
  3. 403 Forbiiden?
  4. Авторизация через wget на форуме с https
  5. IT Блог Reset Button
  6. Блог Reset Button обо всем на свете
  7. Скачиваем через wget с ftp с авторизацией
  8. Качать wget’ом с сайтов, требующих авторизацию
  9. Команда Wget в Linux с примерами
  10. Wget Command in Linux with Examples
  11. В этом руководстве мы покажем вам, как использовать команду Wget, на практических примерах и подробных объяснениях наиболее распространенных параметров Wget.
  12. Установка Wget
  13. Установка Wget на Ubuntu и Debian
  14. Установка Wget на CentOS и Fedora
  15. Синтаксис команды Wget
  16. Как скачать файл с помощью Wget
  17. Использование команды Wget для сохранения загруженного файла под другим именем
  18. Использование команды Wget для загрузки файла в определенный каталог
  19. Как ограничить скорость загрузки с помощью Wget
  20. Как возобновить загрузку с помощью Wget
  21. Как скачать в фоновом режиме с Wget
  22. Как изменить Wget User-Agent от Wget
  23. Как скачать несколько файлов с помощью Wget
  24. Использование команды Wget для загрузки через FTP
  25. Использование команды Wget для создания зеркала сайта
  26. Как пропустить проверку сертификата с помощью Wget
  27. Как скачать в стандартный вывод с помощью Wget
  28. Вывод

wget и авторизация

Ранее качал этим монстром с ресурсов, на которых авторизация была примитивна: http-user&http-password, но теперь всё не так — сайт принудительно требует предварительной авторизации для просмотра/скачивания страниц. Добывать куки я не умею (ранее никогда с необходимостью этого не сталкивался) и плохо понимаю принципы web-авторизации. Научите анализировать и работать с кукисами/хидерами/пост-запросами и помогите освоить эти новые для меня знания. За информацию, советы и ссылки заранее говорю СПАСИБО.

—load-cookies=ФАЙЛ загрузить кукисы из ФАЙЛА перед сеансом.
-save-cookies=ФАЙЛ сохранить кукисы в ФАЙЛ после сеанса.
—keep-session-cookies загрузить и сохранить кукисы сеанса

Если использовать cookies взятый из браузера (так часто делают)то придется и user agent изменять.

Это я и сам смог найти. Гугл рулит! Но нигде нет точной или последовательной инструкции с объяснениями как и что делать, а, главное, почему именно так.

Что делаю не так?

Результат второго запроса: «вы должны авторизироваться».

в первом запросе вместо —user=login —password=’pass’ надо сделать что-то вроде —post-data=’login=login&password=password’ и запрос отправлять туда же, куда отправляется из формы логина.

Мне кажется, такие вещи удобнее делать c http://search.cpan.org/

jesse/WWW-Mechanize-1.72/lib/WWW/Mechanize.pm, тем же под ruby или другими схожими инструментами.

403 Forbiiden?

No. Мне выдаётся именно страница с сообщением что «данный контент доступен пользователям только после логина. Просьба войти под своими логином и раролем.»

Я и так то же пробовал: пост-дата(экшн=логин&имя=имя&пасс=пасс), Пробовал и без «экшн=логин» — каждый раз одно и то же: Пожалуйста, войдите под своим логин/паролем.

Да, понимаю, что лучше руби, питон, пхп или нечто подобное, но у меня доступены только знания баш, и то без хорошего знания sed и awk.

Wget редиректит на html-страницу?
Ну так залогинься (или зарегистрируйся сначала) и потом wget.

так ты возьми firebug какой-нибудь, да погляди, что и как отправляет твой браузер при нормальном логине и повтори тот же POST-запрос в своём вгете, сохраняя куки, после чего уже подключая имеющиеся куки качай нужный контент.

рекомендую чуточку помучаться и воспользоваться curl — когда припёрло работать с куками и пост-запросами он оказался удобнее, чем wget.

Это всё уже сделано. Есть имя и пароль. Могу зайти на сайт, и ссылки работают (в браузере). А вот с wget договориться никак не могу. То-ли он не принимает мою идентификацию, то-ли сервер ведёт лог и не впускает, переправляя на страницу с просьбой залогиниться.

Я не работал с кукисами ранее и потому не знаю как это делается правильно. Возможно, я просто не правильно задаю какой-то параметр.

Читайте также:  Linux get hard drive info

Параметры нужно передавать через POST-строку и скрипту, который отвечает за авторизацию. Названия переменных можно посмотреть в коде формы авторизации на сайте

Проблема в том что мой английский не так хорош, чтобы я изучил и понял доки по CURL, а обучаться на частных примерах из сети. Думаю, понятно. Если есть ссылки на русскую доку по этой программе — очень прошу поделиться ссылкой.

Я уже писал о том что крайне плохо понимаю механизмы взаимодействия в web. Так что я очень далёк от навыков составления пост-запросов. Если можете научить — прошу помощи. )

К примеру, форма может выглядеть так:

На ЛОРе есть CSRF, если на вашем ресурсе оно тоже есть — необходимо предварительно получать этот код из формы, сохраняя куки, и передавать вместе с логином-паролем

Если так, как в примере выше, то логин будет выглядеть примерно так:

по сути без разницы будет, каким инструментом пользоваться. главное — это выяснить, что ожидает получить сайт для «логина». с этим очень здорово помогает firebug, который, вроде как, должен быть в любом нормальном браузере.

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

Тогда запрос нужен, по идее, такой:

wget http://site/takelogin.php —post-data=«username=$user&password=$password» —save-cookies=file

А потом, как подключать кукисы? Так, как я писал выше?

Источник

Авторизация через wget на форуме с https

Как сделать сие из консоли?

Метод Дамп сайта и авторизация через wget я или не понял, или он не работает..

SSL/TLS здесь не имеет и не может иметь никакого значения.

Спасибо. Но это не ответ. У меня пока никак не получилось залогиниться.

Авторизация разная может быть. Если там какой-нибудь Nginx Basic Auth то достаточно ключей —username и —password (с соответствующими значениями) при вызове wget. Если форум авторизует тебя путем присваивания какой-нибудь куки после отправления заполненной формы с логином и паролем — нужно определить что отправляется на сервер и что возвращается, воспроизвести все это через wget и потом постоянно слать в запросе куку с указанием сессии (или что там после авторизации присваивается). Если авторизация через какой-нибудь OAuth-провайдер идет — дополняется еще и заход на сторонний сайт (в простейшем случае, а то еще и урл придется вытягивать из запроса к основному сайту). В общем ответа однозначного нет, все зависит от того где нужно авторизоваться и как там эта авторизация устроена.

Возьми Firefox, открой консоль разработчика, посмотри в вкладке с сетевыми запросами нужные тебе POST и скопируй их в формате curl, например. А там уже и wget заюзать будет намного проще.

В «Разработка» «консоль разработчика» нет. Вебконсоль, отладчик, инспектор — не очень понимаю в каком инструментарии и как посмотреть( Но метод заинтересовал, буду пробовать подскажите только где эта консоль)

Источник

IT Блог Reset Button

Блог Reset Button обо всем на свете

Скачиваем через wget с ftp с авторизацией

Недавно мне понадобилось скачать сайт с кучей мелких файлов. Как обычно я запустил mc, подключился к серверу и стал скачивать.

Но по какой то непонятной причине коннект постоянно рвался, да и сканировал mc структуру папок довольно долго.

Сначала я хотел попробовать консольным FTP, но никак не мог найти команду для рекурсивного скачивания, при этом я постоянно натыкался на рекомендации сделать это через wget, что я и решил попробовать

Читайте также:  Pictures hats in windows

Синтаксис команды предельно прост

wget -r ftp://LOGIN:PASSWORD@FTP_SERVER_IP_OR_HOSTNAME:PORT

Ключ -r означает ходить по папкам рекурсивно, всё остальное я думаю понятно 🙂

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

FINISHED —2017-09-11 20:34:28—
Total wall clock time: 9m 7s
Downloaded: 3460 files, 753M in 2m 3s (6.13 MB/s)

Что меня, к слову, изрядно удивило в плане скорости — оказалось что скачивать wget ftp с авторизацией и просто и, что важнее, намного быстрее чем через mc. Единственный момент — файлы закачиваются не туда, где запущен wget, а сначала создается папка с именем FTP_SERVER_IP_OR_HOSTNAME и в нее уже сохраняется структура. Искать где это отключить мне было влом, и я просто скопировал файлы на уровень выше.

UPDATE

Оказалось что wget скачал не всё, по причине того что дефолтная глубина при рекусивном скачивании = 5.

Правильный синтаксис такой

wget -r -l inf ftp://LOGIN:PASSWORD@FTP_SERVER_IP_OR_HOSTNAME:PORT
или
wget -m ftp://LOGIN:PASSWORD@FTP_SERVER_IP_OR_HOSTNAME:PORT

Во втором варианте сохраняется time-stamp файлов, т.е.

Источник

Качать wget’ом с сайтов, требующих авторизацию

возможно? как?
например для скачивания музыки\видео с каких-нибудь ресурсов типа VK прямо из консоли (bash-скриптом)
где-то читал, что надо отправить запрос с логином\паролем, но как? wget –help

Сам разберёшься или на пальцах объяснить?

маны читать умею. пока получилось только залогинитса –
wget http://vk.com/login.php -oO /dev/null –post-data “email=$login&pass=$password”.
но например wget http://vk.com/gsearch.php?section=audio итд. не получаетса. заного просит авторизацию.. Попробуй вот это:

wget –http-user=username –http-pass=password DownloadURL1 DownloadURL2 DownloadURL…

Некоторые сайты настроены и требуют не –http-pass ,а –http-password

не то все равно…
но зато йа уже знаю как получать аудиозаписи со своей страницы, и уже работает – Ну извини…

Тогда покури маны к curl

Вот то,чем я пользовался:

Вдумчиво и внимательно читать ман wget, особенно часть про cookies спасибо (: –save-cookie=$cookie а потом –load-cookie=$cookie.
itworks! ^_^

© 2006-2021, Русскоязычное сообщество Arch Linux.
Название и логотип Arch Linux ™ являются признанными торговыми марками.
Linux ® — зарегистрированная торговая марка Linus Torvalds и LMI.

Источник

Команда Wget в Linux с примерами

Wget Command in Linux with Examples

В этом руководстве мы покажем вам, как использовать команду Wget, на практических примерах и подробных объяснениях наиболее распространенных параметров Wget.

Установка Wget

Пакет wget уже предустановлен в большинстве дистрибутивов Linux.

Чтобы проверить, установлен ли пакет Wget в вашей системе, откройте консоль, введите wget и нажмите клавишу ввода. Если у вас установлен wget, система напечатает wget: missing URL , в противном случае он будет печатать wget command not found .

Если wget не установлен, вы можете легко установить его с помощью менеджера пакетов вашего дистрибутива.

Установка Wget на Ubuntu и Debian

Установка Wget на CentOS и Fedora

Синтаксис команды Wget

Прежде чем перейти к использованию wget команды, давайте начнем с обзора основного синтаксиса.

В wget полезности выражение принимает следующий вид:

  • options — варианты Wget
  • url — URL файла или каталога, который вы хотите скачать или синхронизировать.

Как скачать файл с помощью Wget

В простейшей форме, когда используется без какой-либо опции, wget загрузит ресурс, указанный в [url], в текущий каталог.

В следующем примере мы загружаем tar-архив ядра Linux:

Как видно из рисунка выше, Wget начинает с разрешения IP-адреса домена, затем подключается к удаленному серверу и начинает передачу.

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

Читайте также:  Install rabbit mac os

Чтобы отключить вывод Wget, используйте -q опцию.

Если файл уже существует, Wget добавит .N (число) в конце имени файла.

Использование команды Wget для сохранения загруженного файла под другим именем

Чтобы сохранить загруженный файл под другим именем, передайте -O опцию, а затем выбранное имя:

Команда выше сохранит последнюю файл hugo zip из GitHub latest-hugo.zip вместо его исходного имени.

Использование команды Wget для загрузки файла в определенный каталог

По умолчанию Wget сохраняет загруженный файл в текущем рабочем каталоге. Чтобы сохранить файл в определенном месте, используйте -P параметр:

С помощью приведенной выше команды мы сообщаем Wget сохранить ISO-файл CentOS 7 в /mnt/iso каталог.

Как ограничить скорость загрузки с помощью Wget

Чтобы ограничить скорость загрузки, используйте —limit-rate опцию. По умолчанию скорость измеряется в байтах / секунду. Добавить k за килобайт, m за мегабайты и g за гигабайты.

Следующая команда загрузит двоичный файл Go и ограничит скорость загрузки до 1 Мб:

Эта опция полезна, когда вы не хотите, чтобы wget использовал всю доступную пропускную способность.

Как возобновить загрузку с помощью Wget

Вы можете возобновить загрузку, используя -c опцию. Это полезно, если ваше соединение разрывается во время загрузки большого файла, и вместо того, чтобы начать загрузку с нуля, вы можете продолжить предыдущую.

В следующем примере мы возобновляем загрузку iso-файла Ubuntu 18.04:

Если удаленный сервер не поддерживает возобновление загрузки, Wget начнет загрузку с начала и перезапишет существующий файл.

Как скачать в фоновом режиме с Wget

Для загрузки в фоновом режиме используйте -b опцию. В следующем примере мы загружаем iso-файл OpenSuse в фоновом режиме:

По умолчанию выходные данные перенаправляются в wget-log файл в текущем каталоге. Чтобы посмотреть статус загрузки, используйте tail команду:

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

Иногда при загрузке файла удаленный сервер может быть настроен на блокировку Wget User-Agent. В подобных ситуациях для эмуляции другого браузера передайте -U опцию.

Приведенная выше команда будет эмулировать Firefox 60, запрашивающий страницу у wget-forbidden.com

Как скачать несколько файлов с помощью Wget

Если вы хотите загрузить несколько файлов одновременно, используйте -i параметр, после которого укажите путь к локальному или внешнему файлу, содержащему список URL-адресов для загрузки. Каждый URL должен быть в отдельной строке.

В следующем примере мы загружаем iso файлы Arch Linux, Debian и Fedora с URL-адресами, указанными в linux-distros.txt файле:

Если вы укажете — имя файла, URL будут считаны из стандартного ввода.

Использование команды Wget для загрузки через FTP

Чтобы загрузить файл с FTP-сервера, защищенного паролем, укажите имя пользователя и пароль, как показано ниже:

Использование команды Wget для создания зеркала сайта

Чтобы создать зеркало сайта с помощью Wget, используйте -m опцию. Это создаст полную локальную копию веб-сайта, перейдя и загрузив все внутренние ссылки, а также ресурсы веб-сайта (JavaScript, CSS, изображения).

Если вы хотите использовать загруженный веб-сайт для локального просмотра, вам нужно будет передать несколько дополнительных аргументов команде выше.

Эта -k опция заставит Wget конвертировать ссылки в загруженных документах, чтобы сделать их пригодными для локального просмотра. -p Опция покажет Wget , чтобы загрузить все необходимые файлы для отображения страницы HTML.

Как пропустить проверку сертификата с помощью Wget

Если вы хотите загрузить файл через HTTPS с хоста, имеющего недействительный сертификат SSL, используйте —no-check-certificate параметр:

Как скачать в стандартный вывод с помощью Wget

В следующем примере Wget тихо (пометит -q ) загрузит и выведет последнюю версию WordPress в stdout (пометит -O — ) и tar передаст ее утилите, которая извлечет архив в /var/www каталог.

Вывод

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

Источник

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