Как решить HTTP-ошибку при загрузке URL. Статус = 503 JSOUP (я перепробовал все решения) - PullRequest
0 голосов
/ 03 апреля 2019

Во время моего проекта «Большие данные» мне нужно было разработать сценарий JSOUP, чтобы получить данные измерений в Париже в 2018 году и сохранить их

public static final String USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; 
Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 
Safari/537.36";

    int numberDay = 1;
    for(numberDay=1; numberDay<32 ; numberDay++ ) {
        //une condition sur le numberDay =1 puisque dans URL 1  = 1er
        if(numberDay==1){

            String First=numberDay+"er";
            String url = "https://www.infoclimat.fr/observations-meteo/archives/"+First+"/"+listMois.get(1)+"/2018/paris-montsouris/07156.html";
            System.out.println(url);
            //Document doc = Jsoup.connect(url).userAgent("Mozilla").get();
            Document doc = Jsoup.connect(url).userAgent(USER_AGENT).get();

            //appel de la methode DataCollect
            dataCollect.GetData(doc);

        }


    else if(numberDay!=1) {

            String url = "https://www.infoclimat.fr/observations- 
meteo/archives/"+numberDay+"/"+listMois.get(1)+"/2018/paris- 
montsouris/07156.html";
            System.out.println(url);
            Document doc = 
Jsoup.connect(url).userAgent(USER_AGENT).get();

            dataCollect.GetData(doc);

        }
    else{
            System.out.println("erreur");
        }


}

Я перепробовал все решения user_Agent, но у меня те же ошибки (URL работает в браузере)

 Exception in thread "main" org.jsoup.HttpStatusException: HTTP error 
 fetching URL. Status=503

ошибка отображается на 8-й день, поэтому он может определить, что это робот после 8 запросов.

1 Ответ

0 голосов
/ 03 апреля 2019

Мне удалось решить проблему, поставив поток, чтобы увеличить время между запросами

Thread.sleep(5000);
...