最近终于空下来了,所以下个Ruby玩玩,安装Ruby很简单,去官网下载
![](/icons/36038yi.gif)
个
![](/icons/36038yi.gif)
键安装包既可,linux下
![](/icons/36038de.gif)
安装,大家Google下就有很多教程了.对于IDE网上说NetBeans支持得很完美,但是
![](/icons/36038yinwei.gif)
本人比较喜欢Eclipse,所以还是跟大家推荐EasyEclipse for Ruby and Rails,当然你可以选择只下RoR
![](/icons/36038de.gif)
插件而不弄个全新
![](/icons/36038de.gif)
Eclipse.
以前
![](/icons/36038yi.gif)
直在用Java写爬虫工具抓图片,对HttpClient包装,正则表达式处理那个是累啊,就算弄好了工具类,有时候
![](/icons/36038yi.gif)
会又想不起来放哪儿,但Ruby对方面包装
![](/icons/36038de.gif)
就很强大,短短几十行代码就搞定了这
![](/icons/36038yi.gif)
切:
页面获取和文件下载
![](/icons/36038de.gif)
思路方法.
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]
filename
nil||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
抓取图片
![](/icons/36038de.gif)
具体应用:
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
使用
![](/icons/36038yi.gif)
天的后感觉ruby
![](/icons/36038de.gif)
语法很自然,很好理解,上手比较容易,而且相关包封装
![](/icons/36038de.gif)
也很好,确实比较适合拿来玩玩小
![](/icons/36038chengxu.gif)
.