从SourceForge下载整个文件夹

时间:2016-09-23 19:32:01

标签: download directory sourceforge

我需要从SourceForge下载一个项目,但没有简单明显的方法。 在这张图片上(链接下来,信誉不够),可以下载"最新版本",它只包含第一个文件夹中的文件,但我需要下载其他文件夹。

可以下载这些文件,但只能手动下载,因为有数百个文件和子文件夹 - 这是非常不切实际的。

有谁知道下载它的方法?我没有找到太多,只有一些提到wget,但我尝试了没有任何成功。

链接:http://s9.postimg.org/xk2upvbwv/example.jpg

6 个答案:

答案 0 :(得分:11)

有时在摘要标签上有一个下载链接,但有时我不知道如何处理,所以我使用这段代码:

wget

您应该在浏览器中打开一个控制台,其中列出了所有文件。复制+过去+输入代码,系统将提示您列出{{1}}命令,您可以复制+过去+在终端中输入。

答案 1 :(得分:1)

在每个Sourceforge项目或项目文件夹页面中,都有一个RSS链接,如您在example screenshot here中所见。

右键单击要下载的文件夹或项目页面中的RSS图标,然后复制链接并使用以下Bash脚本:

curl https://sourceforge.net/projects/xdxf/rss?path=/dicts-babylon/001 | grep "<link>.*</link>" | sed 's|<link>||;s|</link>||' | while read url; do url=`echo $url | sed 's|/download$||'`; wget $url ; done

用RSS链接替换“ https://sourceforge.net/projects/xdxf/rss?path=/dicts-babylon/001”,并观察魔术发生的情况,RSS链接将包括Sourceforge文件夹或项目及其子文件夹的所有文件,因此脚本将递归下载所有内容。

祝你好运

答案 2 :(得分:1)

如何从Windows 10的Sourceforge中的特定文件夹下载所有文件:

步骤1:从https://eternallybored.org/misc/wget/下载最新的wget(zip文件,而不是exe文件)。

注意:如有必要,请在Google中搜索“ wget 1.20.x”以找到正确的链接。如果您的系统是Winodws 10 32位,则下载32位文件;如果您的系统是Windows 10 64位,则下载64位文件。

第2步:从http://gnuwin32.sourceforge.net/packages.html下载最新的grep和coreutils安装程序。

注意:如有必要,请在google中搜索“ gnuwin32”以找到正确的链接。仅32位安装程序可用。

第3步:提取下载到C:\ WgetWinx32或C:\ WgetWinx64的wget zip文件中的所有内容。

注意:您可以在几乎任何位置安装wget,但最好将其安装在文件夹名称中没有空格的文件夹中。

步骤4:双击相应的安装程序到文件夹C:\ GnuWin32,安装grep。

步骤5:双击相应的安装程序到已安装grep的同一文件夹中,以安装coreutils。

注意:您可以按任意顺序安装grep和coreutils(即先安装grep,然后再安装coreutils,反之亦然),甚至可以在任何地方安装,即使在安装程序显示的默认位置,但最好安装在没有文件夹的文件夹中文件夹名称中的空格。

第6步:右键点击桌面上的“此PC”图标。从下拉列表中选择“属性”菜单。从弹出的“系统”窗口中选择“高级系统设置”。 从弹出的“系统属性”窗口中选择“环境变量...”。从“系统变量”中选择“路径”,然后单击“编辑...”按钮。 在“编辑环境变量”弹出窗口中单击“新建”按钮。输入wget安装文件夹的路径(例如,“ C:\ WgetWin32”或“ C:\ WgetWin64”不带引号)。 再次单击“编辑环境变量”弹出窗口中的“新建”按钮。输入grep和coreutils安装文件夹的路径(例如,“ C:\ GnuWin32 \ bin”,不带引号)。 现在,继续单击“编辑环境变量”,“系统变量”和“系统属性”弹出窗口中的“确定”按钮。

第7步:使用文本编辑器,使用以下行在wget安装文件夹中创建DOS批处理文件“ wgetcmd.bat”(例如,“ C:\ WgetWin32”或“ C:\ WgetWin64”不带引号)。

    cd C:\WgetWin32
    cmd
    (OR)
    cd C:\WgetWin64
    cmd

第8步:在桌面上创建此批处理文件的快捷方式。

第9步:右键单击快捷方式,然后从下拉列表中选择“以管理员身份运行”。

步骤10:在弹出的DOS命令窗口的DOS提示符下一次或一次输入以下命令。

    wget -w 1 -np -m -A download <link_to_sourceforge_folder>
    grep -Rh refresh sourceforge.net | grep -o "https[^\\?]*" > urllist
    wget -P <folder_where_you_want_files_to_be_downloaded> -i urllist

这就是所有人!这将从指定的Sourceforge文件夹下载所有文件。

答案 3 :(得分:0)

上述示例:假设我要从Soruceforge文件夹https://sourceforge.net/projects/octave/files/Octave%20Forge%20Packages/Individual%20Package%20Releases/下载所有文件,那么以下几行命令将执行此操作。

wget -w 1 -np -m -A download https://sourceforge.net/projects/octave/files/Octave%20Forge%20Packages/Individual%20Package%20Releases/
grep -Rh refresh sourceforge.net | grep -o "https[^\\?]*" > urllist
wget -P OctaveForgePackages -i urllist

上面提到的Sourceforge文件夹包含许多Octave程序包作为.tar.gz文件。所有这些文件都将被本地下载到文件夹“ OctaveForgePackages”!

答案 4 :(得分:0)

如果没有 wget 或 shell 安装,请使用 FileZilla: sftp://你的名字@web.sourceforge.net 你用sftp和你的密码打开连接然后 你浏览到 /home/pfs/

在该路径(可能是 ? 标记)之后,您填写要在远程站点下载的文件夹路径,就我而言 /home/pfs/project/maxbox/Examples/

这是frs的访问路径: 文件发布系统:/home/frs/project/PROJECTNAME/ filezilla_sourceforge

答案 5 :(得分:0)

这是一个示例 python 脚本,您可以使用它从 Sourceforge 下载

r = requests.get("https://sourceforge.net/Files/filepath") #Path to folder with files
soup = BeautifulSoup(r.content,'html.parser')
dowload_dir ="download/directory/here"

    files = [file_.a['href'] for file_ in soup.find_all('th' , headers = "files_name_h")]
    
    for file_download_url in files:
      filename = file_download_url.split('/')[-2]
      
      if filename not in os.listdir(download_dir):
          r = requests.get(file_download_url)

          with open(os.path.join(download_dir, filename),"wb") as f:
                  f.write(r.content)
                  print(f"created file {os.path.join(download_dir, filename)}")