首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何限制红宝石谷歌搜索结果的数量?

如何限制红宝石谷歌搜索结果的数量?
EN

Stack Overflow用户
提问于 2014-02-05 19:03:42
回答 2查看 333关注 0票数 1

我正在为Ruby使用视觉媒体谷歌搜索库,我无法找到选择搜索结果数量的方法。我曾考虑过将search.size选项从:large更改为:small,但这似乎没有什么区别。我如何将结果限制在五个URLS上。

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-05 19:58:29

这是:

代码语言:javascript
复制
search = Google::Search::Web.new do |search|
  search.query = "where is peru?"
  search.size = :small
end

创建一个惰性可枚举对象,该对象仅在枚举结果时检索搜索结果。因此,这一点:

代码语言:javascript
复制
search.first(5)

获取前五个搜索;如下所示:

代码语言:javascript
复制
uris = search.first(5).map(&:uri)

得到前五个uri的。

first(5)更改为first(20),您将看到执行它花费的时间要长得多,这与枚举懒惰是一致的。

票数 1
EN

Stack Overflow用户

发布于 2014-02-05 19:51:33

一种方法是在google-search/lib/google-search/search/base.rb的第183行上查看这个方法

代码语言:javascript
复制
def self.size_for sym
      { :small => 4,
        :large => 8 }[sym]
    end

您可以展开此散列和任何自定义搜索大小。

或者,深入挖掘,看看是否可以将其全部消除,并允许新的搜索选项接受search.size的ints。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21586209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档