Вопрос по – зеркальный сайт http, исключая определенные файлы

8

Я хотел бы отразить в простом защищенном паролем веб-портале некоторые данные, которые я хотел бы сохранить в зеркале & amp; до настоящего времени. По сути, этот веб-сайт представляет собой просто список каталогов с данными, упорядоченными по папкам и Я действительно не забочусь о сохранении файлов html & amp; другие элементы форматирования. Однако есть некоторые типы файлов, которые слишком велики для загрузки, поэтому я хочу их игнорировать.

С использованиемwget -m -R/--reject flag почти делает то, что я хочу, за исключением того, что все файлы загружаются, затем, если они соответствуют флагу -R, они удаляются.

Вот как я используюwget:

wget --http-user userName --http-password password -R index.html,*tiff,*bam,*bai -m http://web.server.org/

Который производит вывод, подобный этому, подтверждая, что исключенный файл (index.html) (a) загружается, а (b) затем удаляется:

...
--2012-05-23 09:38:38-- http://web.server.org/folder/
Reusing existing connection to web.server.org:80.
HTTP request sent, awaiting response... 401 Authorization Required
Reusing existing connection to web.server.org:80.
HTTP request sent, awaiting response... 200 OK
Length: 2677 (2.6K) [text/html]
Saving to: `web.server.org/folder/index.html' 100%[======================================================================================================================>] 2,677 --.-K/s in 0s

Last-modified header missing -- time-stamps turned off.
2012-05-23 09:38:39 (328 MB/s) - `web.server.org/folder/index.html' saved [2677/2677]

Removing web.server.org/folder/index.html since it should be rejected.

...

Есть ли способ заставить Wget отклонить файл перед его загрузкой?
Есть ли альтернатива, которую я должен рассмотреть?

Кроме того, почему я получаю401 Authorization Required ошибка для каждого загруженного файла, несмотря на предоставление имени пользователя & amp; пароль. Это какwget пытается подключиться без проверки подлинности каждый раз, прежде чем пытаться ввести имя пользователя / пароль.

спасибо Марк

Смотрите решение об изменении wget из этого (дублирующего) вопроса:stackoverflow.com/questions/12704197/… taranaki

Ваш Ответ

4   ответа
5

http://www.pavuk.org) выглядело как многообещающая альтернатива, которая позволяет вам зеркалировать веб-сайты, исключая файлы на основе шаблонов URL-адресов и расширений имен файлов ... но pavuk 0.9.35 seg-faults / умирает случайным образом в середине длинных передач & amp; не разрабатывается активно (эта версия была построена в ноябре 2008 года).

К вашему сведению, вот как я это использовал:
pavuk -mode mirror -force_reget -preserve_time -progress -Robots -auth_scheme 3 -auth_name x -auth_passwd x -dsfx 'html,bam,bai,tiff,jpg' -dont_leave_site -remove_old -cdir /path/to/root -subdir /path/to/root -skip_url_pattern ’*icons*’ -skip_url_pattern '*styles*' -skip_url_pattern '*images*' -skip_url_pattern '*bam*' -skip_url_pattern '*solidstats*' http://web.server.org/folder 2>&1 | tee pavuk-Дата.log

в конце,wget --exclude-directories сделал трюк:

wget --mirror --continue --progress=dot:mega --no-parent \
--no-host-directories --cut-dirs=1 \
--http-user x --http-password x \
--exclude-directories='folder/*/folder_containing_large_data*' --reject "index.html*" \
--directory-prefix /path/to/local/mirror
http://my.server.org/folder

Поскольку--exclude-directories подстановочные знаки не имеют разметки / / '; вам нужно формировать свои запросы достаточно точно, чтобы избежать загрузки целых папок.

отметка

2

Parameter --reject 'pattern' на самом деле работал для меня сwget 1.14.

Например:

wget --reject rpm http://somerpmmirror.org/site/

Все*.rpm файлы вообще не скачивались, только индексы.

Warning: File patterns can be unintentionally expanded by bash if they match a file located in working directory. Please use quotes to avoid that:

touch blahblah.rpm
# working
wget -R '*.rpm' ....
# working
wget -R "*.rpm" ....
# not working
wget -R *.rpm ....
1

http://linuxgazette.net/160/misc/lg/how_to_make_wget_exclude_a_particular_link_when_mirroring.html

Ну, я не уверен насчет более новых версий.

Что касается кода 401, состояние не сохраняется (cookie не используется для аутентификации HTTP), поэтому имя пользователя и пароль должны отправляться при каждом запросе. wget попробуйте запрос без пользователя & amp; пройти сначала, прежде чем прибегнуть к нему.

1

FTP: // URL_ftp_server

SERVER
    |-logs
    |-etc
    |-cache
    |-public_html
      |-images
      |-videos ( want to exclude )
      |-files
      |-audio  (want to exclude)

wget -X / public_html / videos, / public_html / audio ftp: SERVER / public_html / *

Похожие вопросы