程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Ruby學習筆記一 安裝Ruby與Ruby的爬蟲應用

Ruby學習筆記一 安裝Ruby與Ruby的爬蟲應用

編輯:關於JAVA

最近終於空下來了,所以下個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)
 returnNet::HTTP.get(URI.parse(url));
end
defsave_url(url,dir,filename)
 filename=url[url.rindex('/')+1,url.length-1] iffilename==nil||filename.empty?
 require'open-uri'
 Dir.mkdir("#{dir}")ifdir!=nil&&!dir.empty? &&!FileTest.exist?(dir)
 open(url)do|fin|
  iftrue
  File.new("#{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'
  while start_url != nil && !start_url.empty? do
    print "開始下載#{start_url}\n"
    content = query_url(start_url)
    next_page = content.scan(/ <a href="(.*?)" class="next-page"><span>下一頁<\/span><\/a>/)
    next_url = nil
    next_url = next_page[0][0] if  next_page != nil && next_page.length > 0 && next_page[0].length > 0
    imgs = content.scan(/<img src="(http:\/\/img[\d].*?)" \/>/)
    for img in imgs
      url = img[0];
      save_url(url,"d:\\mall\\",nil)
    end
    start_url = next_url;
    #    break;
  end
end

使用一天之後感覺ruby的語法很自然,很好理解,上手比較容易,而且相關包封 裝的也很好,確實比較適合拿來玩玩小程序.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved