2014-01-30 2 views
1

웹 사이트에서 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과 같은 다른 질문은 내가 사용하고있는 패키지를 다루지 않는다.

미리 도움을 청하십시오!

+0

일반적으로 503은 웹 서버의 일시적인 오버로드로 인해 발생합니다. 그것은 당신의 프로세스가 될 수도 있습니다, 또는 어쩌면 뭔가 다른 웹 서버에 액세스 할 수 있습니다. 각 요청 사이에 짧은 잠을 삽입하려고하면 어떻게됩니까? –

+0

지금 실행하십시오. 각 액세스 사이에 100 밀리 초의 휴식 시간이 있으면 각 액세스 사이에 긴 일시 중지가 줄어들지 만 여전히 존재합니다. 완료 될 때까지 기다리는 중입니다. 편집 1 : 358 개 중 339 개 액세스에서 동일한 오류가 발생합니다. 지연 추가는 도움이되지 않았으므로 1000 초 지연으로 실행합니다. – user3251567

+0

좋습니다. 1 초 지연을 추가하면 여전히 약 240 회의 액세스가 발생합니다. 아래 답변을 시도해 보겠습니다. – user3251567

답변

1

서버에 제한이있을 수 있습니다. 이 경우 URLConnection 대신 Socket 및 input/outputStream을 사용할 수 있습니다.

관련 문제