我写了一个Java代码,可对受CloudFlare保护的站点的页面进行爬网。我在获取页面源代码后等待6秒钟来绕过保护。我将图片网址保存到列表中,并在代码末尾尝试下载图片。
这是代码:
images.forEach((baseUrl) -> {
try {
URL imageUrl = new URL(baseUrl);
HttpURLConnection connection = (HttpURLConnection) imageUrl.openConnection();
BufferedImage bufferedImage = ImageIO.read(connection.getInputStream());
File outputfile = new File("e:/saved.jpg");
ImageIO.write(bufferedImage, "jpg", outputfile);
} catch (MalformedURLException ex) {
System.out.println("Error during image (" + baseUrl + ") download: " + ex.getMessage());
} catch (IOException ex) {
System.out.println("Error during image download: " + ex.getMessage());
}
});
我知道所有文件都将保存到save.jpg,因此我需要在那里解决。但是现在更重要的是错误消息:
图像下载期间出错:服务器返回URL的https://xxxxxxxxx.com/fold/original_263320.jpg?1592415320的HTTP响应代码:503
我在互联网上发现这可能是由于Cloudflare引起的。如何获取图像?