![Несколько учетных данных пользователя в wget](https://rvso.com/image/36006/%D0%9D%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE%20%D1%83%D1%87%D0%B5%D1%82%D0%BD%D1%8B%D1%85%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%20%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F%20%D0%B2%20wget.png)
Можно ли с помощью wget
, указать более одной пары «пользователь/пароль» при зеркалировании веб-сайта, имеющего несколько защищенных паролем областей с разными учетными данными?
Я хотел бы отразить целый веб-сайт, который имеет несколько защищенных областей. В качестве упрощенного примера рассмотрим следующую структуру:
example.com/protected_area_1/ (user=alice, password=cat)
example.com/protected_area_2/ (user=bob, password=dog)
Теперь при использовании wget --mirror example.com
можно дополнительно указать параметры --user
и --password
, но при указании только одной пары «имя пользователя/пароль» одна из двух защищенных областей не может быть загружена из-за 401 Authorization Required
.
Есть ли способ сделать что-то вроде wget --user=alice --password=cat --user=bob --password=dog (...)
? На естественном языке:При обнаружении защищенной паролем области попытайтесь получить доступ, поочередно введя все предоставленные учетные данные.
решение1
Если это необходимо сделать с помощью wget
:
Если комбинаций имени пользователя и пароля немного, а загрузка не слишком большая, можно запустить все дерево несколько раз с каждой комбинацией (используя
--user
и--password
) и объединить результаты.Если различные комбинации имени пользователя и пароля зависят от доменов, вы можете попробовать
wget
опции--ask-password
иexpect
и указать нужную комбинацию в нужное время.
Для более сложных ситуаций загрузки я всегда использовал специальную программу на основе Selenium, которая корректно справляется с текущей практикой загрузки части страниц с помощью JavaScript, а также с другими схемами входа, отличными от базовой аутентификации, которую может обрабатывать wget.