我正在尝试解析网址中的图片。它工作正常。
但我也想获得图像的高度和宽度。
所以,我正在尝试使用BufferedImage
。
但如果我尝试与图像建立任何类型的连接,它就会开始跳过图像。 我不知道为什么会发生这种情况,可能是因为循环强制跳过大图像。
代码 - >
public Vector getimages(Document doc) {
Vector images = new Vector(50, 50);
Elements png = doc.select("img");
try {
BufferedImage readImage_img = null;
for(Element pngs : png) {
if(!images.contains(new String(pngs.attr("abs:src")))) {
//InputStream is = new URL(pngs.attr("abs:src")).openStream();
//readImage_img = ImageIO.read(is);
//int img_h = readImage_img.getHeight();
//int img_w = readImage_img.getWidth();
//if(img_h>50 && img_w>50)
//{
images.addElement(new String(pngs.attr("abs:src")));
//}
}
}
} catch (Exception ex) {
}
return images;
}
但如果我取消注释输入流或缓冲区,它会跳过主要是大的图像。
答案 0 :(得分:0)
HTTP 403错误意味着禁止。这可能意味着URL错误,双重编码或正确,但其他错误。您可能需要设置User-Agent
HTTP标头以假装您的程序是Web浏览器。