我正在使用Jsoup從一個網站的郵政編碼中提取數據。從一個文本文件 中讀取郵政編碼並將結果寫入控制檯。我有大約1500個郵政編碼。該程序引發兩種例外:我從網站中提取數據時出現異常
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");
}
}
@LaviniaTomole - 你也嘗試了上述以及?如果是,得到相同的錯誤? –
我現在正在嘗試..到目前爲止它正在工作......但對於1500郵政編碼,我需要一段時間......我會讓你知道....謝謝你! – Lavinia
雖然你可以設置超時時間,對吧? –