2010-09-06 63 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)。