0

我绝不是 Ruby 的大师,而且对 Scrubyt 也很陌生。我只是在尝试在 wiki 页面上找到的一些示例。我正在处理的示例是在您搜索“ruby”时获取谷歌返回的搜索结果,我有获取每个结果的 URL 的想法,这样我就可以继续获取该页面。问题是我不知道如何正确获取 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,我注意到标签也被打印出来了)。我可以做一些简单的事情吗?fetch link_url或者有没有办法从保存的 xml 内容中提取文本link_url

这是由 打印的一些内容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>
4

1 回答 1

0

我会考虑替代方案。Scrubyt 有一段时间没有更新了,论坛也被关闭了。

Mechanize可以做 Extractor 所做的事情,Nokogiri可以解析 XML 或 HTML 响应,而 Builder 可以创建 XML(尽管您似乎并不真正想要 XML)。

于 2010-09-28T02:09:32.033 回答