【发布时间】:2012-06-30 07:22:59
【问题描述】:
我正在编写一个 webcrawer 类型的程序,连同 html,我需要下载图像、swf 等以使其离线可用。
之前有人提供了一些非常有用的信息,关于下载文件:
import static org.apache.commons.io.FileUtils.copyURLToFile;
public static void Download() {
URL dl = null;
File fl = null;
try {
fl = new File(System.getProperty("user.home").replace("\\", "/") + "/Desktop/Screenshots.zip");
dl = new URL("http://example.com/uploads/Screenshots.zip");
copyURLToFile(dl, fl);
} catch (Exception e) {
System.out.println(e);
}
}
效果很好,但是,有些网站给了我一个 403 块。在做了一些研究之后,我发现这在很大程度上是网站限制机器人下载的尝试。 Java中有解决方法吗?显然,您需要将其作为 HTTP 请求发送,而不是使用我拥有的代码。
例如,对我不起作用的链接是:http://images.4chan.org/v/src/1340901798824.jpg
提前致谢!
【问题讨论】:
-
403 表示 Forbidden,这应该可以提示您正在发生的事情,不是吗?
-
网站试图限制机器人下载...是的,网站不希望你做你正在做的事情。
-
查看checkupdown.com/status/E403.html了解403的解释
-
@MattMarx “Forbidden”这个词你不懂吗?
-
即便如此。如果这些网站有经过批准的 API,请使用它,否则……我们不会帮助您尝试绕过合法网站的完全合理的限制。
标签: java web-scraping http-status-code-403