私はJsoup Java HTMLパーサを使用して特定のURLから画像を取得しています。しかし、画像の中にはステータス502のエラーコードが表示されているため、マシンに保存されません。エラー502ステータスを修正するには
String url = "http://www.jabong.com";
String html = Jsoup.connect(url.toString()).get().html();
Document doc = Jsoup.parse(html, url);
images = doc.select("img");
for (Element element : images) {
String imgSrc = element.attr("abs:src");
log.info(imgSrc);
if (imgSrc != "") {
saveFromUrl(imgSrc, dirPath+"/" + nameCounter + ".jpg");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
log.error("error in sleeping");
}
nameCounter++;
}
}
そしてsaveFromURL機能は、次のようになります - - :ここで私が使用しているコードのスナップショットがある私は、ステータスコード502について、インターネット上で検索
public static void saveFromUrl(String Url, String destinationFile) {
try {
URL url = new URL(Url);
InputStream is = url.openStream();
OutputStream os = new FileOutputStream(destinationFile);
byte[] b = new byte[2048];
int length;
while ((length = is.read(b)) != -1) {
os.write(b, 0, length);
}
is.close();
os.close();
} catch (IOException e) {
log.error("Error in saving file from url:" + Url);
//e.printStackTrace();
}
}
が、それは誤りが悪いゲートウェイによるものであると言います。私はこれを理解していない。可能性のあるものの一つは、私はこのエラーが私がループ内の画像にリクエストを送信しているためかもしれないと思っています。 Webサーバーはこの大量の負荷に対応できないため、以前の画像が送信されていないときに画像へのリクエストを拒否しています。私はすべての画像を取得した後に睡眠を入れようとしましたが、運はありません。
ありがとうたくさんのbrad。初心者はURLConnectionオブジェクトについて知りませんでした。リソースをきれいにクローズして何を言おうとしているのかまだ分かりません。説明してください。 – sachinjain024
まだ502エラーが出ていますか? JSoupビジネスを使わずに試してみることのできる別のコード例を掲載しました。たぶん問題がどこにあるのかを特定するのに役立ちます。 – Brad
ちょっとありがとうブラッド、問題を解決していただきありがとうございます。私はこの問題を抱えて以来、私はjsoupを使って相対URLを絶対URLに変更しました。それは私の目的を解決してくれて、私を助けてくれたことに感謝しています。 – sachinjain024