用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 @   刘俊峰  阅读(1632)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示