Как загрузить все файлы из определенного проекта Sourceforge? - PullRequest
6 голосов
/ 02 августа 2010

Потратив около часа на скачивание почти каждого пакета Msys из sourceforge, я задаюсь вопросом, есть ли более разумный способ сделать это. Можно ли использовать wget для этой цели?

1 Ответ

2 голосов
/ 06 июля 2017

Я успешно использовал этот скрипт:

https://github.com/SpiritQuaddicted/sourceforge-file-download

Для вашего использования запустите:

sourceforge-file-downloader.sh msys 

Сначала следует загрузить все страницы, затем найти реальные ссылки на страницах и загрузить окончательные файлы.

Из описания проекта:

Позволяет загружать все файлы проекта sourceforge. Загружает в текущий каталог в каталог с именем, похожим на проект. Передайте имя проекта в качестве первого аргумента, например ./sourceforge-file-download.sh inkscape, чтобы загрузить все http://sourceforge.net/projects/inkscape/files/

На всякий случай, если репо когда-либо будет удалено, я опубликую его здесь, так как оно достаточно короткое:

#!/bin/sh

project=$1
echo "Downloading $project's files"

# download all the pages on which direct download links are
# be nice, sleep a second
wget -w 1 -np -m -A download http://sourceforge.net/projects/$project/files/

# extract those links
grep -Rh direct-download sourceforge.net/ | grep -Eo '".*" ' | sed 's/"//g' > urllist

# remove temporary files, unless you want to keep them for some reason
rm -r sourceforge.net/

# download each of the extracted URLs, put into $projectname/
while read url; do wget --content-disposition -x -nH --cut-dirs=1 "${url}"; done < urllist

rm urllist
...