如何查找网站正确API?Python调用Poder360接口返回403如何解决
403报错解决及正确API查找方案
403状态码的核心原因是网站的反爬机制识别到了非浏览器的请求,直接拒绝访问,可按以下步骤排查解决:
- 第一步:补充请求头模拟浏览器身份
默认requests发起的请求会携带User-Agent: python-requests/版本号的标识,绝大多数网站会直接拦截这类请求。你可以修改请求头模拟Chrome浏览器,示例代码如下:
import requests # 模拟Chrome浏览器的请求头 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" } response = requests.get("https://pesquisas.poder360.com.br/api/", headers=headers) print(response.status_code)
- 第二步:查找正确的API请求端点
直接访问根路径/api/大概率不是实际的业务接口,你可以通过浏览器的开发者工具抓包获取真实接口:- 用Chrome打开对应的数据页面,按下F12调出开发者工具,切换到「网络」面板
- 点击面板上的「筛选」按钮,选择「Fetch/XHR」分类,只看接口请求
- 在页面上执行你需要的操作(比如筛选数据、翻页),此时网络面板会出现对应的接口请求,点击即可查看完整的请求地址、请求参数、请求头配置
- 第三步:排查额外的身份校验规则
如果加了请求头还是返回403,需要检查是否有以下校验逻辑:- Cookie校验:部分网站需要先访问前端页面获取下发的Cookie,再携带Cookie请求API才会通过验证,你可以先发起一次对前端页面的GET请求,把返回的Cookie带入后续的API请求中
- 动态参数校验:部分接口会携带动态生成的token、签名参数,这类参数需要从前端页面的HTML或者其他接口的返回值中提取,再带入请求
内容的提问来源于stack exchange,提问作者abbehusen
相关产品推荐
相关产品推荐

