用Ruby写的离线浏览代理服务器,重要更新

安装完Ruby之后,doc目录里自带了一本书《THE BOOK OF RUBY》,粗看还可以,细看就一般了,而且是基于ruby 1.8的。Ruby 1.9改了很多地方,跟1.8不完全兼容了,改掉了一些缺点,很不错。最近在上一篇博客的基础上又做了以下改进:

1.个别网页中有编码错误的字符,不能正确解析,用下面的代码加以修正。

1if not text.valid_encoding?
2  puts "warnig: text contains invalid chars"
3  text.encode!("utf-8", :invalid => :replace, :replace => ".").encode!(text.encoding)
4end

2.网页内容压缩后再存入数据库,有效地减小了数据体积。

 1module Gzip
 2  require 'zlib'
 3  def Gzip.compress(text)
 4    stream = StringIO.new
 5    stream.set_encoding("ASCII-8BIT")
 6    gzip = Zlib::GzipWriter.new(stream)
 7    gzip.write text
 8    gzip.close
 9    stream.string
10  end
11
12  def Gzip.decompress(data, encoding = "utf-8")
13    stream = StringIO.new(data,"rb")
14    gzip = Zlib::GzipReader.new(stream)
15    text = gzip.read
16    gzip.close
17    text.force_encoding(encoding)
18    text
19  end
20end

3.看了就知道,此处不说了。

4.为了方便使用,我把自己的服务器贡献出来了,不需要安装任何文件,只要在浏览器中把代理服务器设置成116.255.235.62:9999,然后打开cnbeta里面24小时以前的文章就可以看到效果了。

posted @ 2012-10-26 11:19 刘俊峰 阅读(...) 评论(...) 编辑 收藏