我现在基本在把蜘蛛做完了,不过,在真正测试的时间碰到两个问题:
现在使用的方法是:
//通过URL获取HTML源代码
public static String getHTHL(String OldURL)
{
try {
URL url = new URL(OldURL);
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(),"utf-8"));
String s = "";
StringBuffer sb = new StringBuffer("");
while ((s = br.readLine()) != null) {
sb.append(s);
}
br.close();
return sb.toString();
} catch (Exception e) {
return null;
}
}两个问题:
1 无法正确识别网页编码 抓取网页会出现乱码
2、无法让它自动在服务器没有响应里自动断开(超时)
请各位大虾有没有什么好的解决方法。用其他的开源的工具也行像 HttpClient HtmlParser 也行
现在使用的方法是:
//通过URL获取HTML源代码
public static String getHTHL(String OldURL)
{
try {
URL url = new URL(OldURL);
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(),"utf-8"));
String s = "";
StringBuffer sb = new StringBuffer("");
while ((s = br.readLine()) != null) {
sb.append(s);
}
br.close();
return sb.toString();
} catch (Exception e) {
return null;
}
}两个问题:
1 无法正确识别网页编码 抓取网页会出现乱码
2、无法让它自动在服务器没有响应里自动断开(超时)
请各位大虾有没有什么好的解决方法。用其他的开源的工具也行像 HttpClient HtmlParser 也行
<meta http-equiv="Content-Language" content="zh-CN" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />2. 如果没抛异常, socket就认为只是一直等待, 不知道是否可以设置超时时间, socket肯定是可以的
[HttpClient做这个还是很简单的]Spider下载并没有很大的工作量,此时做这样的工作还来的及的.