2011-10-29 132 views
0

我正在寻找一种使用RoR来检索Google搜索结果的方法。 我刚才可以看到,它以前只能通过刮取HTML页面(Scruby,Nokogiri,Mecheanize ...)来完成。我首先想知道,如果它是合法的,其次,我没有真正不喜欢,你怎么能依靠另一个网站的HTML和CSS - 如果它在第二天被更改会发生什么......也许我错过了那里的东西? 然后我看到Google提供了一个API来完成它,但是我找不到任何处理它的Rails插件。使用Rails获取Google搜索结果

有人知道吗?

谢谢:-)。

回答

3

还有googleajax gem,但它最多只能返回100个结果。

GoogleAjax::Search.web('ruby')[:results].each do |result| 
    puts result.inspect 
end 

除此之外,是的,你可以刮谷歌的结果,没有它反对他们ToS(见5.3),是的,你仍然可以做到这一点,没有人会注意到或采取行动。

顺便说一下,网站通常不会经常更改HTML标记,而Google可能不会比平均更频繁地更改HTML标记。屏幕刮擦足够稳定,实际上是有用的。

+0

非常感谢您的回复!关于GoogleAjax,有可能像GoogleAjax :: Search.web这样的函数无法获取参数...?我无法定义页数或结果数量?我也注意到它只返回完整的HTML代码(未清理,需要解析)? – Moozly

+0

@Moozly,我在我的答案中添加了一个代码示例。我可以确认它适用于googleajax 1.0.1。你可以迭代搜索结果,将':start => 10'作为第二个参数传递给'web()' –

+0

非常有趣的答案,+1 – apneadiving