Назад | Перейти на главную страницу

зеркалирование wget, поддомены, каталоги и файлы cookie

У меня есть учетная запись на веб-странице, которая сейчас "заполнена" (т.е. я израсходовал все свое выделенное пространство), и я хотел бы сделать зеркало этого сайта. wget кажется наиболее подходящим вариантом.

Проблема в том, что я хотел бы только зеркально отразить сайты, лежащие в этом каталоге. http://user.domain.com/room/2324343/transcript/ (и подкаталоги). При сохранении правильных таблиц стилей, javascripts, CSS и т.д., которые существуют в разных каталогах.

Там также загружены файлы, на которые есть ссылки на страницах в каталоге стенограммы (в разных каталогах), которые я хотел бы загрузить / отразить (тезисы имеют различные форматы .exe, .py, .png, .app (и многое другое)). Есть также изображения, которые находятся на разных серверах этих страниц.

Также мне бы хотелось, чтобы ссылки (которые иногда относительные, иногда абсолютные (но на внутренние), иногда внешние) работали правильно, чтобы, если они ссылаются на вещи, которые были загружены (зеркально отображены), они работали нормально (без подключения к Интернету) , но если они ссылаются на внешние или не зеркалированные объекты, они ссылаются на внешний сайт. В основном так они работают как положено.

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

Можно ли использовать wget для этого или есть способ лучше?

в любом случае, как мне этого добиться?

(Я задал этот вопрос на stackoverflow.com/questions/2190115/wget-mirroring-subdomains-and-directories-and-cookies, но мне было рекомендовано попробовать задать его здесь)

Во-первых, вы должны войти на сервер, есть две возможности, ваш логин осуществляется через http auth, в этом случае, делая что-то вроде этого:

wget -k -r -m -np --user=foo --password=bar http://user.domain.com/room/2324343/transcript/

должен это сделать.

Теперь, если вам нужно войти в систему через форму, вы должны сделать это в два шага: сначала войти в систему, затем выполнить зеркальное отображение, поэтому выполните что-то вроде:

wget --save-cookies cookies.txt --post-data 'user=foo&pass=bar' http://user.domain.com/room/2324343/transcript/
wget -k -r -m -np --load-cookies cookies.txt http://user.domain.com/room/2324343/transcript/

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