在我的大数据项目期间,我必须开发一个JSOUP脚本来获取Paris 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次请求后检测到它是机器人。
答案 0 :(得分:0)
我能够通过放置一个线程来延长两次查询之间的时间来解决问题
Thread.sleep(5000);