wget 403 Forbidden или скачать web репозиторий

Возникла необходимость создания локального репозитория для разработчиков, которым необходимы пакеты с сайта http://repo1.maven.org/maven2/, но данный сайт применяет защиту от скачивания его репозитория. Я перепробовал уже несколько методов использования wget, в конечном итоге либо получаю ошибку 403 Forbidden, либо скачивается только индексная страница:

  1. wget -U ‘Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0’ -r -k -l 7 -p -nc http://repo1.maven.org/maven2/
  2. wget -w 20 --user-agent=“Mozilla/4.5 (X11; U; Linux x86_64; en-US)” http://repo1.maven.org/maven2/

Как скачать все файлы с данного репозитория? :dash2:

Привет header тебе в помощь:

wget -d --header="User-Agent: Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11" --header="Referer: http://xmodulo.com/" --header="Accept-Encoding: compress, gzip" http://repo1.maven.org/maven2/

Я уже тоже пробовал)

wget -r -k -l0 -np -E -p -nc -U "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3" http://repo1.maven.org/maven2/

Качает index.html и всё… А -r - не работает)

Вобщем я эту сволочь достебал (простите). Сайт проверяет @#$ную кучу заголовков, прежде чем отдаёт контент.
Чтобы всё не писать в командной строке, нафигачил ~/.wgetrc следующего содержания:


root@srv1-msk:/tmp/test# cat ~/.wgetrc
header = Accept-Language: ru,en-US;q=0.8,en;q=0.6
header = Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
header = Connection: keep-alive
header = Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
header = Accept-Encoding: gzip, deflate, sdch
user_agent = Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.99 Safari/537.36
referer = /
robots = off

и после этого запустил закачку:

wget -r -k -l0 -np -E -p -nc -m --referer=repo1.maven.org/maven2/ http://repo1.maven.org/maven2/

Проверяй.

А чем rsync обыкновенный не устроил?)

Судя по всему здесь “виноват” robots.txt … возможно его необходимо игнорировать в момент подключения…

Похоже, что сервера rsync там просто нет…

Да, либо надо представиться гуглоботом)))

Тээкс ну я протестировал, скопировал полностью папку http://repo1.maven.org/maven2/HTTPClient/HTTPClient/0.3-3/ через wget, указанным выше способом…

Единственно пришлось поиграться параметром --wait :wink:

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

Короче тут такая тема, пока в пятницу игрался с командами, сегодня обнаружил что одна из команд, до сих пор работает (работала), терминал и сам wget пришлось потушить, так как была “сожрана” вся память, в итоге эта папка (maven) на данный момент размером в ~35.5 Гб… сейчас попробую запаковать и могу слить, куда надо…

Незадача:
В терминале было открыто много вкладок с сесиями пользователя из-под которого работал скрипт, команда работала на одной из вкладок, в итоге история команд отображает команду только последней вкладки :facepalm: а так как вариаций команд было великое множество, то реально не помню именно “рабочую” команду… можно как то все команды за пятницу промотреть?

up
эээ, архив вышел в 33.8Гб при степени сжатия 6 ))

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

header = Accept-Language: en-us,en;q=0.5
header = Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
header = Connection: keep-alive
user_agent = Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
referer = /
robots = off

Репозиторий “Maven” по истине большущий репозиторий из всех каких-либо, которые я встречал по итогу скачка у меня уже заняла почти 7 суток и продолжает качаться! Уже скачалось порядка 170Гб, хватит мне места или я уже сам не уверен.

На счёт финального скрипта, то у меня он получился такой:

wget -r -k -l7 -с -nd --no-parent http://repo1.maven.org/maven2/

У меня использовался с заголовками в прям в скрипте, единственно что помню моя команда выглядела примерно так:

wget -d --header="User-Agent: Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11" --header="Referer: http://xmodulo.com/" --header="Accept-Encoding: compress, gzip" -r -e robots=off --no-parent --reject="index.html*" http://repo1.maven.org/maven2/HTTPClient/HTTPClient/