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

Python调用GFG搜索API传Payload时遇连接重置错误求解决方案

解决方案:GFG搜索API连接重置问题

问题原因分析

你遇到的ConnectionResetError是服务器拒绝请求导致的,核心问题有两个:

  1. GET请求参数传递错误:requests.get()中使用data参数不符合规范,GET参数需通过params传递,data仅用于POST/PUT等请求的表单数据。
  2. 缺少必要请求头:GFG的API会拦截无标识的爬虫请求,需要添加User-Agent等头信息模拟浏览器访问。

修正后的代码示例

方式1:GET请求+params传递参数

import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
params = {'page': 3, 'sort': 'relevance', 'type': 'premium', 'query': 'nump'}

try:
    r = requests.get('https://api.geeksforgeeks.org/post/api/googlesearch/', params=params, headers=headers)
    r.raise_for_status()  # 触发HTTP错误状态码异常
    result = r.json()
    print(result)
except requests.exceptions.RequestException as e:
    print(f"请求失败: {e}")

方式2:改用POST请求(若API要求POST接收参数)

如果GFG的API实际需要POST方式接收参数,可调整为:

import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
    'Content-Type': 'application/x-www-form-urlencoded'
}
data = {'page': 3, 'sort': 'relevance', 'type': 'premium', 'query': 'nump'}

try:
    r = requests.post('https://api.geeksforgeeks.org/post/api/googlesearch/', data=data, headers=headers)
    r.raise_for_status()
    result = r.json()
    print(result)
except requests.exceptions.RequestException as e:
    print(f"请求失败: {e}")

额外注意事项

  • 若仍出现连接问题,可添加Referer头(值设为https://www.geeksforgeeks.org/),进一步模拟正常访问流程。
  • 避免频繁发送请求,防止触发GFG反爬虫机制导致IP被封禁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 13:20:50