我正在使用 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");
}
}