<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Dust Of Dream

    知識(shí)真的是一個(gè)圓么?

    Ruby學(xué)習(xí)筆記一:安裝Ruby與Ruby的爬蟲應(yīng)用

    最近終于空下來了,所以下個(gè)Ruby玩玩,安裝Ruby很簡(jiǎn)單,去官網(wǎng)下載一個(gè)一鍵安裝包既可,linux下的安裝,大家Google下就有很多教程了.對(duì)于IDE網(wǎng)上說NetBeans支持得很完美,但是因?yàn)楸救吮容^喜歡Eclipse,所以還是跟大家推薦EasyEclipse for Ruby and Rails,當(dāng)然你可以選擇只下RoR的插件而不弄個(gè)全新的Eclipse.
    以前一直在用Java寫爬蟲工具抓圖片,對(duì)HttpClient包裝,正則表達(dá)式處理那個(gè)是累啊,就算弄好了工具類,有時(shí)候一會(huì)又想不起來放哪兒,但Ruby對(duì)方面包裝的就很強(qiáng)大,短短幾十行代碼就搞定了這一切:
    頁(yè)面獲取和文件下載的方法.
    util.rb:

    require 'net/http'
    def query_url(url)
      
    return Net::HTTP.get(URI.parse(url));
    end

    def save_url(url
    ,dir,filename)
      filename 
    = url[url.rindex('/')+1, url.length-1if filename == nil || filename.empty?
      
    require 'open-uri'
      Dir
    .mkdir("#{dir}"if dir != nil && !dir.empty? && !FileTest.exist?(dir)
      
    open(url) do |fin|
        
    if true
        File
    .new("#{dir}#{filename}","wb").close
        
    open("#{dir}#{filename}","wb"do |fout|
          
    while buf = fin.read(1024do
            fout
    .write buf
            STDOUT
    .flush
          end
        end
        end
      end
    end

    抓取圖片的具體應(yīng)用:
    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>下一頁(yè)<\/span><\/a>/)
        next_url 
    = nil
        next_url 
    = next_page[0][0if  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的語(yǔ)法很自然,很好理解,上手比較容易,而且相關(guān)包封裝的也很好,確實(shí)比較適合拿來玩玩小程序.

    posted on 2008-10-15 10:11 Anemone 閱讀(2012) 評(píng)論(0)  編輯  收藏 所屬分類: RUBY學(xué)習(xí)

    My Links

    Blog Stats

    News

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    新聞檔案

    相冊(cè)

    常去網(wǎng)站

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 99久久免费精品国产72精品九九| 日韩视频在线免费| 亚洲一级片在线观看| 在线免费视频一区| a毛片成人免费全部播放| 亚洲视频免费在线观看| 久久WWW免费人成人片| 国产福利免费视频| 亚洲影视一区二区| 亚洲视频在线精品| 亚洲黄色免费电影| 成人免费网站久久久| 亚洲综合免费视频| 免费少妇a级毛片| 人与禽交免费网站视频| 青青免费在线视频| 亚洲国产av高清无码| 亚洲综合久久夜AV | 在线观看免费高清视频| 成人毛片100免费观看| 亚洲色大成网站WWW国产| 亚洲av无码潮喷在线观看| 成人永久免费福利视频网站| 久久免费国产视频| 一级毛片成人免费看a| 亚洲av乱码一区二区三区香蕉| 亚洲精品无码永久在线观看你懂的| 性感美女视频免费网站午夜 | 亚洲精品第一国产综合境外资源 | 九九九精品成人免费视频| 中文在线免费不卡视频| 亚洲国产精品无码观看久久| 亚洲成人激情在线| 亚洲欧洲日本在线| 在线看片无码永久免费aⅴ | 亚洲国产精华液网站w| 国产午夜影视大全免费观看| 成人免费的性色视频| 一区二区在线免费观看| 国产免费MV大全视频网站| 国产精品亚洲专区无码唯爱网|