昨天在爬一个综合型网站里面的公司具体信息的时候遇到了一些问题,因为是刚毕业工作,所以也许遇到的小问题对于我来讲也很重要。
1.总是出现read time out情况:
这个问题出现的原因有很多,一个是网速太慢,跟对方服务器也有关,还有很多因素,我是设置con.timeout(5000),最后尝试了很多方法,找到一种解决方法
<span style="white-space:pre"> </span>int i=2;
while(i<trs.size()){
Map<String,String> map = new LinkedHashMap<String,String>();
Elements tds = trs.get(i).select("td");
String company = tds.get(1).text();
map.put("公司",company);
String area = tds.get(2).text().trim();
map.put("地区",area);
String hrefurl = tds.get(1).select("a").attr("abs:href");
Map<String,String> detailMap = new LinkedHashMap<String, String>();
try {
detailMap = getInformation(hrefurl);
} catch (Exception e) {
continue;
}
map.putAll(detailMap);
list.add(map);
i++;
}
就是用这种while()循环,当请求出现异常时continue跳过本次循环,但i的值并不会改变,因为没有执行i++,所以会直到出现请求结果为止,这样就把问题解决啦