2011-10-29 136 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