2011-06-21 115 views
57

谷歌是否提供API訪問自動完成搜索像在實際網站上?我一直無法找到任何東西。谷歌搜索autocomplete API?

我想在我自己的網站上使用Google的自動完成邏輯進行網絡搜索,這個網站依靠Google的搜索API。

+1

昨天和今天之間的某個時候,http://google.com/complete/search?q=&HL = EN停止工作。這意味着xlune和blinkdash上的自動完成功能也停止工作。谷歌改變了一些東西,直到有人弄清楚是什麼,試圖訪問他們的自動完成功能將無法正常工作。 – 2011-11-29 15:08:59

回答

0

你想用什麼自動完成?更多信息將有助於縮小範圍。

據我所知,谷歌並沒有提供一個,但他們確實存在像jQuery UI's auto-complete.

編輯:

如果您正在使用自己的自定義搜索API視圖here for autocomplete.

+0

我想提供自動完成功能,以及Google的API提供的網絡搜索功能 –

+0

好的謝謝,但我正在搜索整個網絡。那麼Web Search API呢? –

+0

我找不到任何關於在整個網絡中使用自動完成功能的信息,對不起。無論如何,我不相信Google會讓你這樣做。 – Collecter

0

我喜別不知道這個答案是否與你有關,但谷歌通過下面的獲取請求返回JSON數據(儘管這不是官方的API,但許多工具欄都使用這個API,所以沒有理由爲什麼谷歌可能會停止它):

http://google.com/complete/search?q=<Your keywords here>&hl=en 
+1

你能提供更多關於這是什麼的信息嗎?我試了一下,它讓我下載一個文件。自己檢查一下。 –

+0

是justin,那個文件是一個JSON響應。你可以使用它使用javascript ..你可以看到原始結果,如果你在Linux上使用notepad或vim打開該文件。 – Sid

+5

不起作用。 :( – Dejell

61

新的網址是:

http://suggestqueries.google.com/complete/search?client=firefox&q=YOURQUERY

客戶端部分是必需的;我沒有測試其他客戶端。

[編輯]

如果你想在回調使用:

http://suggestqueries.google.com/complete/search?client=chrome&q=YOURQUERY&callback=callback

由於@Quandary發現;該回調不適用於客戶端「firefox」。

[EDIT2]

如圖所示由@ user2067021這個API將停止工作,爲2015年10月8日:Update on the Autocomplete API

+1

改爲使用:http://suggestqueries.google。 com/complete/search?client = chrome&q = YOURQUERY&callback = abc,因爲如果你使用client = firefox,回調不起作用 –

+0

那些都是我的空白文件 – Supuhstar

+0

@Supuhstar:他們都工作。 – RickyA

7

大多數上述方法對我的作品,具體有以下服務我的目的。

http://suggestqueries.google.com/complete/search?client=firefox&q=YOURQUERY 

作爲網絡編程的新手,我不太清楚「回調」功能和查詢返回的文件格式。我很少意識到AJAX和JSON。 有人可以提供關於查詢返回的文件格式的更多細節。 謝謝。

+0

似乎沒有工作了......我得到一個包含這個內容的文檔:[「YOURQUERY」,[]] - 沒有別的。啊哈! –

+1

啊!好的,所以它工作。 :)只是「YOURQUERY」是Google無法完成的事情。哈哈。 http://suggestqueries.google.com/complete/search?client=firefox&q=mary+had會提供一些正確的結果。 –

9

首先,到谷歌,點擊設置(右下角),更改搜索設置爲「從不顯示立竿見影的效果,這樣一來,你會得到的,而不是立竿見影的一整頁定期自動完成。

保存設置後,請返回Google主頁,打開瀏覽器的開發者工具,進入網絡標籤頁,如果您使用的是Firefox,則可能需要重新加載頁面。

在中鍵入一個字母搜索框,一個新行應該出現在你剛剛打開的網絡窗口中,該行顯示自動填充數據來自哪裏,複製該網址。它應該看起來像這樣:

https://www.google.com/complete/search?client=hp&hl=en&sugexp=msedr&gs_rn=62&gs_ri=hp&cp=1&gs_id=9c&q=a&xhr=t&callback=hello 

您會注意到您的搜索字詞後面有q=

&callback=myAmazingFunction添加到網址的末尾。您可以將myAmazingFunction替換爲您想要命名將處理數據的函數的任何內容。

下面是顯示搜索詞「a」的自動完成數據所需的代碼示例。

<div id="output"></div> 

<script> 
/* this function shows the raw data */ 
function myAmazingFunction(data){ 
    document.getElementById('output').innerHTML = data; 
} 
</script> 

<script src="https://www.google.com/complete/search?client=hp&hl=en&sugexp=msedr&gs_rn=62&gs_ri=hp&cp=1&gs_id=9c&q=a&xhr=t&callback=hello&callback=myAmazingFunction"></script> 

既然你已經知道如何獲得數據後,下一步是自動改變的最後一個腳本(帶有自動完成URL)。基本過程是:每次用戶在搜索框中輸入內容(onkeyup)時,都會替換url中的搜索詞(q = whatever),然後將帶有該URL的腳本附加到正文中。刪除前面的腳本,以便身體不會混亂。

欲瞭解更多信息,請參閱http://simplestepscode.com/autocomplete-data-tutorial/

+0

適合我,謝謝! –