您在這裡

網頁中嵌入Google Custom Search API搜索結果

James Qi 在 2016年6月12日 - 14:30 發表

  很早以前我們就在MediaWiki網站的頁面中嵌入過Google Search API代碼,見我2008年記錄的《Google AJAX Search API 很好!很強大!》,這些嵌入的内容對網站浏覽者來說還是很有用的,但到2010年ZF“整治互聯網低俗之風”的時候,我們網站上嵌入的Google搜索結果也成了我們網站“涉黃”的原因,隻好乖乖地去掉API調用代碼,随後Google搜索也被迫退出中國大陸。

  但在我們放在國外服務器上提供給老外浏覽的站點上我們依然保留了Google Web Search API的内容,直到這個API被Google自身升級、淘汰,Google推出Custom Search API是2010年,當時說老的Search API将繼續可以用3年,實際上延續了近6年,前一陣子我們收到的通知郵件中說在2016年4月29日正式停止服務。

  這個Custom Search API我們以前也嘗試過,但沒有大量使用,4月份再次測試了一下,定制功能還是很強大的,免費版帶有Google廣告,不過可以與自己的AdSense賬号綁定,給自己也帶來收益。我們把代碼稍微改了一下,将搜索框去掉,而讓網頁的标題作為默認的搜索詞,網站展示的時候直接顯示搜索結果,這與我們以前用Google AJAX Search API的方式一樣,代碼如下:

<script>
  (function() {
    var cx = 'partner-pub-1234567890:1234567890;//AdSense賬号以及冒号後的自定義搜索編号
    var gcse = document.createElement('script');
    gcse.type = 'text/javascript';
    gcse.async = true;
    gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(gcse, s);
  })();
      window.onload = function(){//這段是我們自己加入的,用于裝載标題關鍵詞并自動執行搜索
       var key = '$title';
       var element = google.search.cse.element.getElement('searchresults-only0');
       element.execute(key);
    }
</script>
<gcse:searchresults-only></gcse:searchresults-only>

  我們是把上面這段代碼放到Drupal網站的顯示模闆中,就可以讓相關的每個頁面都自動顯示搜索結果。

  參考鍊接:Google Custom Search Engine (國内需要翻牆訪問,梯子請自備,例子頁面example page中的搜索内容也需要翻牆才能看到),在裡面可以創建自己的自定義搜索引擎,并設置很多選項,包括外觀、結果條數、是否站内搜索、搜索語言、國家以及提供統計和日志,十分強大。

  另外,我也想嘗試在國内的網站中加入這樣的功能,但百度隻提供站内搜索的API,沒有對全網的查詢,必應的bing search api隻能免費5000次/日,暫時不用算了。

 

自由标簽:

發表新回應

Plain text

  • 不允許使用 HTML 標籤。
  • 自動將網址與電子郵件地址轉變為連結。
  • 自動斷行和分段。