2010-09-06 35 views
0

我絕不是Ruby的高手,而且對於Scrubyt來說還是比較新的。我只是試着在那裏找到一些wiki頁面的例子。我正在研究的例子是在搜索「ruby」時獲得Google返回的搜索結果,並且我有了抓取每個結果的URL的想法,所以我可以繼續並獲取該頁面。問題是我不知道如何適當地抓取URL。這是我下面的代碼:如何正確使用Scrubty從XML輸出的內容中獲取URL

require 'rubygems' 
require 'scrubyt' 

google_data = Scrubyt::Extractor.define do 
    fetch 'http://www.google.com/ncr' 
    fill_textfield 'q','ruby' 
    submit 

    link_title "//a[@class='l']", :write_text => true do 
    link_url 
    end 
end 

google_data.to_xml.write($stdout, 1); 

的代碼打印出來的XML數據的適當(名稱和鏈接),但我怎麼檢索,而不<link_url>標籤似乎被添加到它的鏈接(我想打印出來link_url,我注意到標籤也被打印)。我能做些簡單的事情嗎?或者有沒有一種方法可以從保存在link_url中的xml內容中提取文本?

這是一些得到由google_data.to_xml.write()打印的內容:

<root> 
    <link_title> 
    Ruby Programming Language 
    <link_url>http://ruby-lang.org/</link_url> 
    </link_title> 
    <link_title> 
    Download Ruby 
    <link_url>http://www.ruby-lang.org/en/downloads/</link_url> 
    </link_title> 
    <link_title> 
    Ruby - The Inspirational Weight Loss Journey on the Style Network ... 
    <link_url>http://www.mystyle.com/mystyle/shows/ruby/index.jsp</link_url> 
    </link_title> 
    <link_title> 
    Ruby (programming language) - Wikipedia, the free encyclopedia 
    <link_url>http://en.wikipedia.org/wiki/Ruby_(programming_language)</link_url> 
    </link_title> 
</root> 

回答

0

我想想辦法。 Scrubyt有一段時間沒有更新,論壇已關閉。

Mechanize可以執行Extractor的操作,Nokogiri可以解析XML或HTML響應,而Builder可以創建XML(雖然看起來您並不想要XML)。