专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Ruby教程 » Ruby学习笔记一:安装Ruby和Ruby的爬虫应用 »正文

Ruby学习笔记一:安装Ruby和Ruby的爬虫应用

来源: 发布时间:星期四, 2009年1月8日 浏览:2次 评论:0
  最近终于空下来了,所以下个Ruby玩玩,安装Ruby很简单,去官网下载键安装包既可,linux下安装,大家Google下就有很多教程了.对于IDE网上说NetBeans支持得很完美,但是本人比较喜欢Eclipse,所以还是跟大家推荐EasyEclipse for Ruby and Rails,当然你可以选择只下RoR插件而不弄个全新Eclipse.

  以前直在用Java写爬虫工具抓图片,对HttpClient包装,正则表达式处理那个是累啊,就算弄好了工具类,有时候会又想不起来放哪儿,但Ruby对方面包装就很强大,短短几十行代码就搞定了这切:

  页面获取和文件下载思路方法.

util.rb:
require'net/http'
defquery_url(url)
 Net::HTTP.get(URI.parse(url));
end
defsave_url(url,dir,filename)
 filename=url[url.rindex('/')+1,url.length-1]filenamenil||filename.empty?
 require'open-uri'
 Dir.mkdir("#{dir}")dir!=nil&&!dir.empty?&&!FileTest.exist?(dir)
 open(url)do|fin|
  true
  File.("#{dir}#{filename}","wb").close
  open("#{dir}#{filename}","wb")do|fout|
   whilebuf=fin.read(1024)do
    fout.writebuf
    STDOUT.flush
   end
  end
  end
 end
end


  抓取图片具体应用:

require"util"
begin
 start_url='http://list.mall.taobao.com/1424/g-d-----40-0--1424.htm'
 whilestart_url!=nil&&!start_url.empty?do
  pr"开始下载#{start_url}n"
  content=query_url(start_url)
  next_page=content.scan(/<ahref="(.*?)"="next-page"><span>下页</span></a>/)
  next_url=nil
  next_url=next_page[0][0] next_page!=nil&&next_page.length>0&&next_page[0].length>0
  imgs=content.scan(/<imgsrc="(http://img[d].*?)"/>/)
  forimginimgs
   url=img[0];
   save_url(url,"d:mall",nil)
  end
  start_url=next_url;
  #  ;
 end
end


  使用天的后感觉ruby语法很自然,很好理解,上手比较容易,而且相关包封装也很好,确实比较适合拿来玩玩小.

标签:

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: