【问题标题】:Download ".java" files only from the given website/url仅从给定的网站/网址下载“.java”文件
【发布时间】:2016-04-20 12:19:21
【问题描述】:

出于研究目的,我想从给定的网站下载 1000 个 java 类(“.java”)文件。我不想手动执行此操作。

例如,下面有许多我想使用脚本/编程获得的 Java 源文件。我使用过 Linux shell 脚本、PHP 和 Java。因此,任何使用这些的解决方案都值得赞赏。

http://www.cs.uic.edu/~sloan/CLASSES/java/

谢谢!

【问题讨论】:

  • 你想写一个这样的程序吗?如果是,到目前为止您尝试了什么?
  • @Pierre:到目前为止,我已经探索了 wget。现在尝试使用 Cygwin 安装 wget 包以尝试使用 wget 的不同下载选项。如果您有任何其他想法,请告诉我。谢谢
  • @Michael:是的,我认为 wget 有一些选项可以以递归方式下载所需的文件。谢谢

标签: java php bash shell


【解决方案1】:

根据问题

wget -A java -r https://www.cs.uic.edu/~sloan/CLASSES/java/

将下载与服务器相同目录结构的所有“.java”文件。 这也将下载 robots.txt 文件。

【讨论】:

  • 是的,它也是“robots.txt”。但这对我来说不是问题。谢谢罗达!!
【解决方案2】:

对于您给出的特定示例,

curl -vs https://www.cs.uic.edu/~sloan/CLASSES/java/ 2>&1 | grep -oP '(?<=").*.java(?=")' | sed -e 's|^|https://www.cs.uic.edu/~sloan/CLASSES/java/|' | xargs wget

解释

1) 获取页面并打印到标准输出。它会给你整个 html。

curl -vs https://www.cs.uic.edu/~sloan/CLASSES/java/ 2>&1

2) 查找带引号的.java 单词,但输出不带引号"[ANYTHING].java"。它会给你类似HelloWorld.java的东西。

grep -oP '(?<=").*.java(?=")'

3) 添加前缀使其成为完整的 url,以便您可以下载它们。它会给你类似https://www.cs.uic.edu/~sloan/CLASSES/java/HelloWorld.java

sed -e 's|^|https://www.cs.uic.edu/~sloan/CLASSES/java/|'

4) 将它们下载到当前目录。

xargs wget

【讨论】:

  • 谢谢你,锡。 “curl”做同样的事情,但我认为“wget”做起来更容易。谢谢你的清晰解释。
【解决方案3】:

谢谢大家!!

我已经使用了“wget -r -l1 -nd -nc -A.java http://www.cs.uic.edu/~sloan/CLASSES/java/

然而,这是我必须完成的任务。但我只是在想,也许我们可以改进相同的“wget”以上网并让我获得 1000 个“.java”文件。也许,我们可以调用 google 搜索(从脚本)搜索关键字“java tutorials”,然后从返回的 URL 中扫描“.java”文件。

再次感谢大家

维基。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-14
    • 1970-01-01
    相关资源
    最近更新 更多