ITPUB??ì3
ITPUB论坛 » 动态语言 » 用Ruby抓取网页通过ActiveRecord存到数据库


标题: 用Ruby抓取网页通过ActiveRecord存到数据库
离线 忍者神龟



精华贴数 1
个人空间 0
技术积分 4667 (282)
社区积分 3862 (353)
注册日期 2002-7-22
论坛徽章:6
现任管理团队成员ITPUB元老授权会员ITPUB新首页上线纪念徽章  
      

发表于 2008-3-7 10:56 
用Ruby抓取网页通过ActiveRecord存到数据库

用Ruby抓取网页通过ActiveRecord存到数据库

工作内容:抓取指定网页的规则的连接地址的内容,并取得其网页中指定部分的内容存到数据库。

技术点1:抓取并分析网页
采用hpricot,其主页可见(http://code.whytheluckystiff.net/hpricot/)。Hpricot is a very flexible HTML parser。
doc = Hpricot(open(url))
这个就是去的url的内容,返回一个doc,这个是Element类的实例对象。也可以认为是一个DOM。
可以对这个对象进行查找,修改等操作,具体见hpricot主页的文档。
技术点2:编码转换
网页可能为gbk编码,也可能为gb2312编码。
数据库为mysql,UTF-8编码,以防万一,在建立数据库连接之后,执行下列语句:
ActiveRecord::Base.connection.execute 'SET NAMES UTF8'
把mysql客户端的编码也设为UTF8,以防出现乱码。
然后用Iconv转换抓取的数据:

ar_object.some_text = Iconv.new("UTF-8//IGNORE","gb2312").iconv(gb2312_data )
这个就是把gb2312的数据转换为utf-8了。
另外,不知道不进行上面转换,而直接实用gb2312编码的数据,在建立数据库客户端连接之后,执行
ActiveRecord::Base.connection.execute 'SET NAMES GB2312'
是不是也可以呢,没试过。


http://liubin.nanshapo.com/2008/03/07/mini_ruby_spider/


只看该作者    顶部
离线 nana0001



精华贴数 0
个人空间 0
技术积分 8 (119659)
社区积分 0 (1762079)
注册日期 2008-4-29
论坛徽章:0
      
      

发表于 2008-4-30 18:14 
ruby 电子书

*** 作者被禁止或删除 内容自动屏蔽 ***
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问