门户站点静态发布的设计与实现

门户站点静态发布的设计与实现

 

       之前写过一片文章讲述了门户首页静态发布解决方案(访问网址:http://infinite.iteye.com/blog/235109),本篇文章继续深入谈谈如何发布门户整站。门户站点的页面可大致分为以下几类:

      1、  门户首页

      2、 二级页面(或称栏目页)

    3、  三级页面(或称文章页)

    4、 全文检索结果展示页面

    5、  控制台管理页面

 

   其中需要前面三种类型的页面是需要发布成静态的,另外发布还分两种情况: 
       1
、整站发布:从首页开始发布整个站点。

       2
、单页发布:根据指定的发布页,发布其及其页面上的所有链接,但页面上链接发布出来的页面上的链接不再继续发布。单页发布主要出于增量发布的需要,比如某栏目下新增加了文章,就可单独对该栏目对应的页面进行单独发布,无需每次都整站发布。


为提高性能,避免对一些不变的页面进行不必要的重新发布(比如文章页),特定以下规则:

1、如果已存在的发布页面列表不包含当前要发布的页面,则发布该页面
2
、如果包含,且非文章页,则发布该页面

3
、如果包含,且是文章页,且非第一个发布页面,则不再发布该页面

4
、如果包含,且是文章页,且是第一个发布页面(单个文章页发布时),则发布该页面


另外对是否发布页面上链接地址,也定以下规则:
1
、如果是整站发布,当前发布页面非文章页,则发布其上所有链接

2
、如果是整站发布,当前发布页面为文章页,则不发布其上所有链接

3
、如果是单页发布,且当前发布页是指定页本身,则发布其上所有链接

4
、如果是单页发布,当前发布页非指定页本身,则不发布其上所有链接

 

具体的发布实现过程参照网络爬虫的原理,具体如下:

1、 从首页开始,使用HttpURLConnection模拟浏览器发起一个请求,通过读取请求响应的内容来抓取页面内容,保存到本地的静态html页面里;

2、解析该新保存的页面内容(使用一个叫HtmlParser的开源包),获取页面里的所有链接,过滤出需要发布成静态页面的url地址。

3、 对这些url地址逐个重复进行12两步的操作。

4、将静态页面里的动态url地址替换成新发布出来的静态html页面地址。

以上过程其实是个深度发布的过程,从首页到栏目页,再一直到文章页,从而将整个站点的所有页面都抓取下来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值