2010-04-27 124 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>