设为首页
收藏本站
最近更新

文章搜索
本类热门

首页 >> 网络编程 >> JSP >> JSP实例 >> 新闻正文 [字体: ] [打印文档]
抓取网页并生成静态页面

文章作者:大鱼
责任编辑:大鱼 录入时间:2006-3-7 14:56:53 来源:第七频道
频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意.

百特科技[http://www.PCbyte.cn]专业的空间、主机提供商,域名注册绝对优惠!

    我们在弄网站的时候,特别是大流量的网站。经常会遇到首页速度比较慢的情况。很多时候就是因为首页运用了大量的数据库操作。遇到这种情况怎么办好呢?就单一的一个页面,如果套用一套摸板再生成首页似乎工作量似乎会不小。我的建议是采用直接抓取动态页面并生成静态页面。

JJAVA代码:com.function

package com.function;

import java.io.*;
import java.net.*;
/**
 * @author 大鱼
 *
 * 抓取网站上的页面并生成一静态页面
 */
public class function {

 public String snatch(String web_url, String coding, String file) {
  //web_url:抓取页面的地址
  //coding:抓取页面的编码
  //生成后的文件名 (实际文件地址)
  
  String sCurrentLine="";
  String return_msg="";
  
  InputStream l_urlStream; 
  
        FileWriter fw;
  try {
   String sTotalString=""; 
   URL l_url = new URL(web_url);
   java.net.HttpURLConnection l_connection = (java.net.HttpURLConnection) l_url.openConnection();
   l_connection.connect();
   l_urlStream = l_connection.getInputStream();
   java.io.InputStreamReader read = new InputStreamReader(l_urlStream,coding);
   java.io.BufferedReader l_reader = new java.io.BufferedReader(read);

   while ((sCurrentLine = l_reader.readLine()) != null)
   {
    sTotalString += sCurrentLine;
   }
   
   sTotalString= this.contentchange(sTotalString);   
   String path = file;

   File fileName = new File(path);
   if (fileName.exists()) {
    // 删除File.txt档
    // fileName.delete();
   } else {
    // 在目前的目录下建立一个名为File.txt的文字档
    fileName.createNewFile();
    fileName.createNewFile();
   }

   fw = new FileWriter(path);   
   // 将字串写入文件
   fw.write(sTotalString);
   fw.close();
   return_msg="操作完毕,页面已生成!";
   return return_msg;
  } catch (MalformedURLException e) {
   // TODO Auto-generated catch block
   return "操作失败,页面未生成!";
  } catch (UnsupportedEncodingException e) {
   // TODO Auto-generated catch block
   return "操作失败,页面未生成!";
  } catch (IOException e) {
   // TODO Auto-generated catch block
   return "操作失败,页面未生成!";
  }
 }
 
 private String contentchange(String content) {
  //用于对页面的代码进行处理,例如对页面中的框架进行代码抽取并组合等
   String str_return=content;
   return str_return; 
  
 }
}

页面调用代码:

<%@ page contentType="text/html;charset=gb2312" %>
<%@ page language="java"%>
<%@ page import="com.function.*"%>
<%
   String path = request.getRealPath("/");
   path=path+"index_n.html";
   System.out.print(path);
  
   String web_url = http://www.wapsun.com;
  
   function fun = new function();
   String msg = fun.snatch(web_url,"gb2312",path);
   System.out.print(msg);
   //
%>

大鱼原创(Q:120673406)----转载请标明

 

推荐好友 | 频道收藏 | 打印文档 | 报告错误  
相关连接
·抓取网页并生成静态页面
·jsp中JAVAMAIL发Gmail邮件SSL使用方法
·J2ME再现华容道
·在应用中加入全文检索功能——基于Java的全文索引引擎Lucene简介
·JSP中的字符替换函数str_replace()实现
·JSP编程进度条设计实例
·使用JSP开发WebMail系统
·在线考试系统代码
同一专题
·无相关专题
发表评论 版权声明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有
转载
要求转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。
共有评论查看评论
姓名: