Jsoupを使用して、Webサイトから郵便番号でデータを抽出しています。郵便番号はテキストファイルから読み取られ、結果はコンソールに書き込まれます。私は約1500の郵便番号を持っています。プログラムは2種類の例外をスローします。
org.jsoup.HttpStatusException: HTTP error fetching URL. Status=500, URL=http://www.moving.com/real-estate/city-profile/...
java.net.SocketTimeoutException: Read timed out
解決策は、一度に少数のデータのみを読み取ることだと思いました。そこで、カウンターを使用して、テキストファイルから200の郵便番号をカウントし、200の郵便番号のデータを取得してから5分間プログラムを停止しました。私が言ったように、私はまだ例外があります。これまでのところ、例外が表示されたら、使用可能なデータをコピーして貼り付け、その後、次の郵便番号を使用して続行します。しかし、私はすべてのデータを中断することなく読み取りたいと思っています。これは可能ですか?ヒントをいただければ幸いです。前もって感謝します!
これは、すべてのデータを読み取るための私のコードです。
while (br.ready())
{
count++;
String s = br.readLine();
String str="http://www.moving.com/real-estate/city-profile/results.asp?Zip="+s;
Document doc = Jsoup.connect(str).get();
for (Element table : doc.select("table.DataTbl"))
{
for (Element row : table.select("tr"))
{
Elements tds = row.select("td");
if (tds.size() > 1)
{
if (tds.get(0).text().contains("Per capita income"))
System.out.println(s+","+tds.get(2).text());
}
}
}
if(count%200==0)
{
Thread.sleep(300000);
System.out.println("Stoped for 5 minutes");
}
}