我绝对不是Ruby的高手,对Scrubyt来说也是个新手。我只是在尝试一些在维基页面上找到的例子。我正在做的一个例子是,当你搜索“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这样简单的事情吗?或者有没有一种方法可以从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>发布于 2010-09-28 10:09:32
我会考虑其他选择。Scrubyt已经有一段时间没有更新了,论坛也被关闭了。
Mechanize可以做提取器所做的事情,Nokogiri可以解析XML或HTML响应,构建器可以创建XML (尽管看起来您并不真正需要XML)。
https://stackoverflow.com/questions/3654708
复制相似问题