You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python调用谷歌搜索API遇参数错误,求非自定义搜索替代API

解决你的谷歌搜索API问题

首先处理TypeError错误

那个错误提示TypeError: google_searchS() takes 3 positional arguments but 4 were given其实很好理解,咱们来拆解一下:

当你用self.google_searchS(...)调用方法时,Python会自动把self(当前类的实例)作为第一个参数传递给方法。这意味着你手动传入的3个参数(搜索关键词、API密钥、CSE ID)加上自动传入的self,总共是4个参数,但你的google_searchS方法定义只接受3个位置参数,所以就报错了。

解决方法分两种情况:

  • 如果google_searchS是类里的实例方法:检查方法定义,确保它包含self作为第一个参数,并且后面还有三个参数(对应你传入的内容)。比如正确的定义应该是:

    def google_searchS(self, query, api_key, cse_id):
        # 这里写你的搜索逻辑
    

    这样调用self.google_searchS('stackoverflow wikipedia.org', my_api_key, my_cse_id)就完全匹配参数数量了。

  • 如果google_searchS是普通函数或者静态方法:那你调用的时候不该加self.,直接调用函数即可。同时方法定义里不要加self参数:

    # 方法定义
    def google_searchS(query, api_key, cse_id):
        # 搜索逻辑实现
    
    # 调用方式
    results = google_searchS('stackoverflow wikipedia.org', my_api_key, my_cse_id)
    

关于非自定义搜索的谷歌普通搜索API

很遗憾,谷歌已经没有公开的普通网页搜索API了——之前的Google Web Search API早在多年前就被弃用了。现在官方唯一提供的网页搜索相关API就是你正在尝试的Google Custom Search API,哪怕你把自定义搜索引擎设置为"搜索整个网页"(在CSE控制台里可以开启这个选项),它本质上还是基于自定义搜索框架的。

如果你的需求是不需要依赖CSE的话,有两个替代方向可以考虑:

  • 使用第三方封装的搜索服务:有些服务商提供了基于谷歌搜索结果的API接口,不过这些通常会有调用次数限制或收费要求。
  • 小规模非商用场景下的网页抓取:你可以用Python的请求库(比如requests)结合解析库(比如BeautifulSoup)来抓取谷歌搜索结果页面,但一定要严格遵守谷歌的robots.txt协议和服务条款,频繁抓取很容易被封禁IP,需要谨慎使用。

内容的提问来源于stack exchange,提问作者Minions

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:17:39