我尝试使用Google自定义搜索引擎API完成相当基本的搜索。 我面临的问题是,我能够获得的唯一结果是前10个:
module WalterSobchak
class GoogleCustomSearch
def initialize
@client = Google::APIClient.new(
key: configatron.google.api_key, authorization: nil)
@search = @client.discovered_api('customsearch')
end
def query(q, num)
@client.execute(api_method: @search.cse.list,
parameters: {q: q, startIndex: num,
key: configatron.google.api_key,
cx: configatron.google.custom_search_engine})
end
end
end
这段代码非常简单但效果很好:首先我使用api_key初始化我的GCS客户端,然后我可以用我喜欢的任何参数调用它,例如:
client.query('poker', 10)
使用字符串'扑克'来搜索我的自定义引擎并从结果集的第10个元素开始。我的问题是它不起作用,我总是得到与没有startIndex选项时相同的结果。问题可能是我不知道该参数是否以这种方式命名,或者它是否是我可以使用的正确参数:我已经尝试过startIndex,start,start_index,num(这个有效,但是最大值为10,我需要至少30个结果),有时参数被拒绝,有时它不会造成任何影响。
之前有没有人做过这样的事情并且可以帮助我?
答案 0 :(得分:2)
从API资源管理器:https://developers.google.com/apis-explorer/#p/customsearch/v1/search.cse.list
看起来你要查找的参数是'start':要返回的第一个结果的索引(整数)。另一个参数(num)是返回的结果数。
您可以在资源管理器上手动尝试,看看为什么它没有返回您需要的内容。