2010-04-27 106 views
1

我想知道,是否有可能通过他们自己的ajax API以每页100个结果的方式接收谷歌搜索结果?Google Ajax搜索API

没有可见的搜索字段,我想在后台获取结果以创建一些搜索短语的进度。

我的基本问题是,谷歌搜索API的限制是什么?

--update--

是有可能改变的语言与谷歌API搜索?从一开始,它就 刚刚从.COM提供英语

亲切的问候

--Andy

+0

添加语言信息。 – Finbarr 2010-04-27 08:53:48

回答

7

您可以获得的最大结果数量是64,8每页搜索器。

可以将所有这些组合到一个页面中,但它涉及搜索者对Google Ajax Search API进行8次调用。

此外,您将需要创建自己的函数来呈现结果:

var s; 
var page = 1; 

google.load('search', '1', {'nocss' : true}); 
google.load('jquery', '1.4.2'); // optional 

google.setOnLoadCallback(function() { 
    // T&C's state you should display branding, create a <div id="branding"></div> 
    google.search.Search.getBranding(document.getElementById('branding')); 
    s = new google.search.WebSearch(); 
    s.setResultSetSize(google.search.Search.LARGE_RESULTSET); 
    s.setSearchCompleteCallback(this, searchComplete, null); 
    s.setNoHtmlGeneration(); 
}); 

function searchComplete() { 
    if(s.results && s.results.length > 0) { 
     var results = s.results; 
     for(var i = 0; i < results.length; i++) { 
      var result = results[i]; 
      // render the results 
     } 
     if(page < 8) { 
      s.gotoPage(page); 
      page++; 
     } 
    } 
} 

有关如何使您的结果信息,请参阅:http://code.google.com/apis/ajaxsearch/documentation/reference.html#_class_GwebResult

要更改语言,添加hl参数包括网页脚本时:

<script src="http://www.google.com/jsapi?hl=en" type="text/javascript"></script>

+0

你确定设置hl作品吗?我可以将其设置为任何我想要的,我总是以我的国家语言接收结果集。 – jAndy 2010-04-27 14:19:38

0

http://code.google.com/apis/ajaxsearch/documentation/reference.html#_class_GSearchControl 这有关于所使用的主控制器类的信息。看来,如下回答你关于结果的大小问题:

.setResultSetSize(SWITCHTO)

这种方法被称为选择 数由每个 的搜索返回的结果。请注意,这不是 标量。这是一个枚举, 表示结果的一小部分 ,或大量的结果。 未来,这种方法可能会增强 以支持中等和额外的 大型结果集。从示例 应用程序中,您可能在搜索控件的顶部 处看到 控制点更多/更少。该方法 由该旋钮控件使用。

switchTo - 耗材en枚举 指示所需数量的 搜索结果返回每个 配置的搜索器。有效值 包括: google.search.Search.LARGE_RESULTSET - 请求大量结果的 (典型地8个结果) google.search.Search.SMALL_RESULTSET - 请求少数结果 (通常为4次的结果) google.search.Search.FILTERED_CSE_RESULTSET - 请求最多10个结果。这仅适用于搜索范围为 的搜索查询引擎,否则将返回错误 。返回 - 不适用

0

这里是我的代码:

<script src="https://www.google.com/jsapi?key=GOOGLE_SEARCH_KEY" type="text/javascript"></script> 
<script language="Javascript" type="text/javascript"> 
//<![CDATA[ 
google.load("search", "1"); 

function OnLoad() { 
    // Create a search control 
    var searchControl = new google.search.SearchControl(); 
    var options = new google.search.SearcherOptions(); 
    options.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN); 
    searchControl.addSearcher(new google.search.WebSearch(),options); 
    searchControl.setResultSetSize(google.search.Search.LARGE_RESULTSET); 
    // Tell the searcher to draw itself and tell it where to attach 
    searchControl.draw(document.getElementById("searchcontrol")); 
} 
google.setOnLoadCallback(OnLoad); 
//]]> 
</script> 
<style>.gsc-control { width: 80%; } input.gsc-search-button { border: 1px solid black; }</style>