前言:最近在寫一個安卓搜尋器,在完善搜尋框的功能的時候,想加入類似百度搜索的搜尋提示功能。但是查了度孃的API,似乎沒有給出該介面或者其他方法,於是只能用黑科技——抓包。

在百度首頁開始抓包,對搜尋提示時的請求進行分析。發現:每次輸入或更新搜尋框的提示,百度都會發送一個get請求,形如:https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=keyword 的型別,keyword就是在搜尋框中的詞。

然後百度會返回一個

Content-Type:
text/javascript; charset=gbk的response,內容如(keyword=你好):
window.baidu.sug({q:"你",p:false,s:["你到底有沒有愛過我","你是我的小蘋果","你是我的眼","你不知道的事","你懂的","你是男的我也愛","你好","逆戰","你是我兄弟","你懂的網站"]});

這個就沒什麼困難的了,利用正則表示式,提取出中括號裡的十個關鍵詞即可。

測試了一下,速度還可以。