百度云现在开放了referer api功能,可以通过 百度refer中的eqid参数来获取百度关键词。
详见:https://cloud.baidu.com/doc/RefererAPI/ProductDescription.html
此接口为付费接口,而且目前只能在百度云(北京)的环境内调用。也就是说,想调用此接口,必须要有一台百度云北京区域的服务器,可以在百度云服务器上搭建代理服务,来实现远程调用。
注:
- 只有企业认证的账户才能调用此接口,个人账户无法调用。
- 可以考虑使用缓存来减少接口请求次数,但是关键词和eqid是一对多的关系,在不同的时间搜索同一个关键词,eqid是会变化的。所以,缓存作用有限。
官方目前只给出了python版本的代码示例,下面是我参照官方python示例写出的golang版本的测试代码:
package main
import (
"crypto/hmac"
"crypto/sha256"
"encoding/hex"
"encoding/json"
"errors"
"fmt"
"io/ioutil"
"net/http"
"net/url"
"strings"
"time"
)
func getAuth(accessKey, accessSecret, utcTimeStr, urlstr, method string) (string, error) {
urlParseRet, err := url