请教页面抓取问题,做过的请进 本帖最后由 imxinshou 于 2011-08-25 11:28:06 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;public class Test1 { private static String getStaticPage(String surl) { String htmlContent = ""; try { java.io.InputStream inputStream; java.net.URL url = new java.net.URL(surl); java.net.HttpURLConnection connection = (java.net.HttpURLConnection) url .openConnection(); connection.connect(); inputStream = connection.getInputStream(); byte[] bytes = new byte[1024 * 2000]; int index = 0; int count = inputStream.read(bytes, index, 1024 * 2000); while (count != -1) { index += count; count = inputStream.read(bytes, index, 1); } htmlContent = new String(bytes, "UTF-8"); connection.disconnect(); } catch (Exception ex) { ex.printStackTrace(); } return htmlContent.trim(); } public static void main(String[] args) { try { String src = getStaticPage("http://www.google.com"); File file = new File("d:\\aa.html"); FileWriter resultFile = new FileWriter(file); PrintWriter myFile = new PrintWriter(resultFile);// 写文件 myFile.println(src); resultFile.close(); myFile.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}1.需要设置连接超时的时间,你可以设长点,一般都是访问太快了导致服务器连接出现问题。2.你可以捕获这个异常,然后从异常的index开始在抓取。3.时间变短,建议用多线程来处理。 FckEditor 导入Word,并且上传到服务器 小弟求救 jsp Hibernate 中怎么获取属性长度 Struts框架下如何在jsp中显示数据库中查询到的数据? ssh集成的时候调用hibernateTemplate.delete()方法执行没问题但是不能删除数据库里的数据,存入数据没问题 这三种方法获得EJB有何不同? 菜鸟请教定制发布的问题????谢谢大家了 spring下的petclinic在迁移到sqlserver时的问题 java socket 问题,{高手}请进! JavaEE对日开发使用什么? 中文的正则表达式
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;public class Test1 {
private static String getStaticPage(String surl) {
String htmlContent = "";
try {
java.io.InputStream inputStream;
java.net.URL url = new java.net.URL(surl);
java.net.HttpURLConnection connection = (java.net.HttpURLConnection) url
.openConnection();
connection.connect();
inputStream = connection.getInputStream();
byte[] bytes = new byte[1024 * 2000];
int index = 0;
int count = inputStream.read(bytes, index, 1024 * 2000);
while (count != -1) {
index += count;
count = inputStream.read(bytes, index, 1);
}
htmlContent = new String(bytes, "UTF-8");
connection.disconnect();
} catch (Exception ex) {
ex.printStackTrace();
}
return htmlContent.trim();
} public static void main(String[] args) {
try {
String src = getStaticPage("http://www.google.com");
File file = new File("d:\\aa.html");
FileWriter resultFile = new FileWriter(file);
PrintWriter myFile = new PrintWriter(resultFile);// 写文件
myFile.println(src);
resultFile.close();
myFile.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
1.需要设置连接超时的时间,你可以设长点,一般都是访问太快了导致服务器连接出现问题。
2.你可以捕获这个异常,然后从异常的index开始在抓取。
3.时间变短,建议用多线程来处理。