我正在为Ruby使用视觉媒体谷歌搜索库,我无法找到选择搜索结果数量的方法。我曾考虑过将search.size选项从:large更改为:small,但这似乎没有什么区别。我如何将结果限制在五个URLS上。
require "google-search"
uris=[]
i=0
Google::Search::Web.new do |search|
i = i + 1
next if i == 6
search.query = "where is peru?"
search.size = :small
puts i
end.each_item { |item| uris << item.uri }
print uris发布于 2014-02-05 19:58:29
这是:
search = Google::Search::Web.new do |search|
search.query = "where is peru?"
search.size = :small
end创建一个惰性可枚举对象,该对象仅在枚举结果时检索搜索结果。因此,这一点:
search.first(5)获取前五个搜索;如下所示:
uris = search.first(5).map(&:uri)得到前五个uri的。
将first(5)更改为first(20),您将看到执行它花费的时间要长得多,这与枚举懒惰是一致的。
发布于 2014-02-05 19:51:33
一种方法是在google-search/lib/google-search/search/base.rb的第183行上查看这个方法
def self.size_for sym
{ :small => 4,
:large => 8 }[sym]
end您可以展开此散列和任何自定义搜索大小。
或者,深入挖掘,看看是否可以将其全部消除,并允许新的搜索选项接受search.size的ints。
https://stackoverflow.com/questions/21586209
复制相似问题