本文主要記錄一下最近所做的關於Google批量搜索的實現方式。
搜索目的:
獲取關鍵詞在某個域名下對應的Google搜索結果數
搜索方式:
關鍵詞+inurl
例如:"爬蟲" inurl:cnblogs.com
第一種方式:
使用爬蟲手段,構造Google搜索url進行采集。
示例:https://www.google.com/search?q=%22%E7%88%AC%E8%99%AB%22+inurl:cnblogs.com&filter=0
此種方式需要面對的問題有:
1、搜索結果有誤差,不同ip得到的結果數不一樣,不過誤差也不是很大,可以接受。
2、搜索結果第一頁顯示數量和第二頁顯示數量存在誤差,誤差很大。第二頁更真實。
3、單個ip一般訪問幾十次就會被識別為機器人,需要驗證碼,而Google驗證碼的難度驚人。。。
4、由於某些原因,可以訪問Google的資源非常寶貴。市面上甚至沒有可以用的代理(大量短效代理)。
Luminati是一家不錯的海外代理服務商,但是竟然不能訪問Google。自建代理的話,成本太高。
解決方案:
我還是自建代理了:)。
第二種方式:
使用Google Custom Search Api,文檔參見 https://developers.google.com/custom-search/v1/overview。
費用計算:
1、每日免費使用100次。
2、超過100次后,按照$5/1000次收費。每日上限10000次。
3、也有不設置上限的接口,參見 https://developers.google.com/custom-search/v1/site_restricted_api
區別在於此接口不能全網搜索,如果只是搜10個一下指定站點的內容可以用這個。
使用條件:
1、你要有一個Google賬號
2、加入Google Cloud Platform,創建 Project。創建 API key,啟用Custom Search Api。具體操作步驟看文檔指引。
3、創建結算賬號 https://console.cloud.google.com/billing。需要真實姓名電話等信息以及支持外幣的信用卡。
目前Google有新注冊贈送一年免費服務+300美金的政策。注冊完即可領取,不過可能由於國內注冊用戶太多吧,Google
在注冊頁面上已經不支持選擇中國了。具體解決辦法請大家自行Google搜索,或參考下文解決辦法。
4、然后你就可以愉快的使用API了,不用擔心被封。
使用方式:
參見:https://developers.google.com/custom-search/v1/using_rest
api地址:https://.googleapis.com/customsearch/v1
必須參數:
cx:Google自定義搜索引擎id,參見https://cse.google.com/cse/all
q:搜索詞
key:API key
存在問題:
1、搜索結果數比Google網頁搜索第一頁結果少,和第二頁結果基本一致。
2、貴,不過如果搜索量不是很大的話,可以利用免費次數也還好。
PS:
1、GCP結算賬號注冊方法參考:
具體過程不贅述,只說關鍵點。
1、注冊國家選擇美國
2、居住地址可以搜索美國地址生成器,隨便寫一個
3、姓名、電話 要寫真實的
4、信用卡要寫真實的,賬單地址也是真實的
然后就沒有了,我注冊的時候沒別的問題,不過看很多網友說,有時候會遇到需要再次驗證的情況。還需要提交身份證明和信用卡賬單截圖。
2、免費的1000次API key獲取方式:還是不說了,自己找吧
參考:
https://zhuanlan.zhihu.com/p/24307174