웹 사이트에서 HTML 코드를 가져 와서 Java에서 파싱하여 웹 사이트의 데이터를 고칩니다.java.io.IOException : 서버가 HTTP 응답 코드 : URL을 위해 503을 반환했습니다. 오류
현재 java.net.URL과 java.net.URLConnection을 사용하고 있습니다. 이것은 내가 특정 웹 사이트에서 HTML 코드를 얻기 위해 사용하는 코드입니다 (this website에 발견 약간 내 요구에 맞게 편집) : 나는 그것을 실행하면
public static String getURL(String name) throws Exception{
//Set URL
String s = "";
URL url = new URL(name);
URLConnection spoof = url.openConnection();
//Spoof the connection so we look like a web browser
spoof.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; H010818)");
BufferedReader in = new BufferedReader(new InputStreamReader(spoof.getInputStream()));
String strLine = "";
//Loop through every line in the source
while ((strLine = in.readLine()) != null){
//Prints each line to the console
s = s + strLine + "\n";
}
return s;
}
는, HTML 코드는 약 100 ~ 제대로 수신 200 개의 웹 페이지. 그러나 HTML 코드를 가져 오기 전에 "java.io.IOException : 서버가 HTTP 응답 코드 : URL을 503 반환했습니다."예외가 발생합니다. 나는이 주제를 완전히 연구했고 this과 같은 다른 질문은 내가 사용하고있는 패키지를 다루지 않는다.
미리 도움을 청하십시오!
일반적으로 503은 웹 서버의 일시적인 오버로드로 인해 발생합니다. 그것은 당신의 프로세스가 될 수도 있습니다, 또는 어쩌면 뭔가 다른 웹 서버에 액세스 할 수 있습니다. 각 요청 사이에 짧은 잠을 삽입하려고하면 어떻게됩니까? –
지금 실행하십시오. 각 액세스 사이에 100 밀리 초의 휴식 시간이 있으면 각 액세스 사이에 긴 일시 중지가 줄어들지 만 여전히 존재합니다. 완료 될 때까지 기다리는 중입니다. 편집 1 : 358 개 중 339 개 액세스에서 동일한 오류가 발생합니다. 지연 추가는 도움이되지 않았으므로 1000 초 지연으로 실행합니다. – user3251567
좋습니다. 1 초 지연을 추가하면 여전히 약 240 회의 액세스가 발생합니다. 아래 답변을 시도해 보겠습니다. – user3251567