这次Ruby的更新主要是修复Bug,一共修复了100多个Bug,并修复了之前1.9.1版本的Heap Overflow漏洞,所以建议升级到p376版本。Changelog
我也在第一时间更新到了p376版本:
wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p376.tar.bz2
tar -xvf ruby-1.9.1-p376.tar.bz2
cd ruby-1.9.1-p376
./configure –bindir=/usr/bin –sbindir=/usr/sbin/
make -j3
make install
前段时间看到一个php的飞信模拟接口,可以实现免费短信发送,所以我就将其拿来做了个自己用的API。
前一段时间由于各种事务的繁忙,我几乎没有什么时间来查邮件,现在趁着这几天难得的假,我就写了一段用Ruby的Mechanize来获取Gmail或Google Apps Mail的代码。
这种模拟登录抓取网页内容的程序写出来就是比较乱,写注释以后自己都不一定记得,呵呵。
前期写模拟抓取网页和登录的时候还算顺利,但是抓取到的信息就是死活发不出去。(我用的是一个web接口,实际发短信部分是用php实现的,不是我写的,但我忘了是从哪里拿来的了,原作者看到请联系我。)
经过调查发现原来得到的信息不是纯的UTF-8编码,必须要转成纯UTF-8的形式才能顺利在手机端被识别。代码如下:
require ‘rubygems’
require ‘mechanize’
require ‘iconv’
def check(address,email,passwd,phone,phonepw)
agent = WWW::Mechanize.new
agent.user_agent = ‘Opera Mini’
agent.follow_meta_refresh = true
…
前一段时间有过这个想法,由于当时我的服务器上没法安装任何RubyGems,所以就没法用Mechanize。
Mechanize是一个模拟浏览器操作的Gem,有很好的操作性!
今天给服务器编译安装了最新的Ruby1.9.1和Gems1.3.5后,安装Gems没有任何问题了!
Mechanize还是很好上手的,所以我就先写了一小段代码,功能不不多,只有登录和更新状态功能。
require ‘rubygems’
require ‘mechanize’
class Renren
attr_reader :agent
attr_accessor :page
def initialize(e,p)
@agent = WWW::Mechanize.new
…
由于CentOS默认源上的Ruby和Gems都很旧了,而且Gems还老出现Segmentation Fault,所以我打算给我的服务器更新最新的Ruby和Ruby Gems.
1. 编译安装Ruby 1.9.1
wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p243.tar.gz
tar -xvf ruby-1.9.1-p243.tar.gz
cd ruby-1.9.1-p243
./configure –bindir=/usr/bin –sbindir=/usr/sbin/
make -j3
make install
2. 安装Gems
cd /root
wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz
tar -xvf rubygems-1.3.5.tgz
cd rubygems-1.3.5
ruby setup.rb
一切OK!
