如何使用谷歌搜索API来获取结果

前言

最近需要爬取一些 google 搜索结果,首先看的就是有没有相关的 API,官方有提供 API 查询,但爬取量有一定限制。

太长不看版

  1. 接口地址为 https://www.googleapis.com/customsearch/v1?key={YOUR_KEY}&q={SEARCH_WORDS}&cx={YOUR_CX}&start={10}&num={10}
  2. KEY 从 谷歌云 API 控制台 来的,需要有外币卡先注册谷歌云账号。但似乎付费的话就不用这个 KEY 了,仅用 CX 即可,这个待查。
  3. CX 从 谷歌可编程搜索 中来
  4. 一天只有 100 次的免费搜索限额,只能查询前 100 条。如需增加则 5 刀 1000 次,但一天上限 10000。 次,对于我来说已经足够用了

怎么做

首先来到 Google Developers 的相关文档页面,可以看到大概的介绍。

生成 API KEY

点击 overview 中的 Get a Key,此处需要登录谷歌帐号,以及注册谷歌云帐号(应该需要绑定外币信用卡)并且创建一个 project,此处略过不表,最后你会得到一个 Key。

这个 Key 可以从谷歌云控制台中看到,建议加上应用限制和 API 限制,以防泄露后被滥用。

生成 cx

cx 是 Google 可编程搜索引擎(Programmable Search Engine)的 id 标识,在此处 新增搜索引擎 可以获取。这里可以指定要搜索的网站,比如说我只希望通过该 API 搜索出来的网站是 shodan.io,谷歌语法里面相当于 site:shodan.io,可以这么设置:

新增完成之后点击修改搜索引擎,并点击设置,你就可以看到你的搜索引擎 id,就是我们说的 cx

里面还有一些选项,自己可以看着修改~如果还想看看文档,可点击在页面下方一点的【以程序化方式访问】-【使用入门】

API

JSON API 可以从 文档 中查看

完整的可请求参数如下,基本上和高级搜索保持一致:

https://www.googleapis.com/customsearch/v1?q={searchTerms}&num={count?}&start={startIndex?}&lr={language?}&safe={safe?}&cx={cx?}&sort={sort?}&filter={filter?}&gl={gl?}&cr={cr?}&googlehost={googleHost?}&c2coff={disableCnTwTranslation?}&hq={hq?}&hl={hl?}&siteSearch={siteSearch?}&siteSearchFilter={siteSearchFilter?}&exactTerms={exactTerms?}&excludeTerms={excludeTerms?}&linkSite={linkSite?}&orTerms={orTerms?}&relatedSite={relatedSite?}&dateRestrict={dateRestrict?}&lowRange={lowRange?}&highRange={highRange?}&searchType={searchType}&fileType={fileType?}&rights={rights?}&imgSize={imgSize?}&imgType={imgType?}&imgColorType={imgColorType?}&imgDominantColor={imgDominantColor?}&alt=json"

简化版:https://www.googleapis.com/customsearch/v1?key={YOUR_KEY}&q={SEARCH_WORDS}&cx={YOUR_CX}&start={10}&num={10}

存在的一些问题

搜索结果与 API 不一致

因为不同 IP 使用谷歌搜索会出现不一样的结果,比如美国和香港的 IP 访问必然会不一样。可以使用 API 中的 lr 参数修改语言选项,也可以在【修改搜索引擎】中修改语言和地区选项。

请求频率

由于一天查的上限就这么多,所以等待时间尽量拉长吧,我 5-10s 请求一次没啥问题

参考资料

https://developers.google.com/custom-search/docs/tutorial/introduction https://developers.google.com/custom-search/v1/reference/rest 本文由博客群发一文多发等运营工具平台 OpenWrite 发布

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值