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

使用requests发送POST请求报certificate verification错误如何解决

证书验证错误解决方案

方案1:跳过证书校验(临时爬取场景适用)

你代码中已经添加了verify=False参数跳过证书校验,绝大多数场景下可以直接解决证书报错问题。如果同时收到不安全请求告警,可添加代码关闭告警即可,另外如果仍然报错可以先升级requests到最新版本:

pip install --upgrade requests

添加告警关闭逻辑后的完整代码如下:

import requests
import pandas as pd
import json
import urllib3

# 关闭跳过证书校验时的不安全请求警告
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

body = { 'tipoEmpresa': '0'}
    
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36',
    'X-Requested-With': 'XMLHttpRequest',
    'Content-Type': 'application/json'
    }

def main(url):
    with requests.Session() as req:
        req.headers.update(headers)
        # 注意:x-dtpc为动态生成参数,固定值会失效,建议先GET请求Base页后从页面JS/响应头提取最新值
        req.headers['x-dtpc'] = '33$511511524_409h2vHHVRBIAIGILPJNCRGRCECUBIACWCBUEE-0e37'
        r = req.post(url, data=json.dumps(body), verify = False)
        resp =  r.json()['d']
        
        df = pd.DataFrame(resp)
        print(df)
        

main('https://www.rad.cvm.gov.br/ENET/frmConsultaExternaCVM.aspx/PopulaComboEmpresas')

补充说明:代码中固定的x-dtpc参数是动态生成的时效参数,固定值使用一段时间后会失效,需要先请求Base页面从返回的页面源码或者响应头中提取最新的参数值再携带发起POST请求。

方案2:保留证书校验(安全场景适用)

如果需要严格校验站点证书避免中间人攻击,可手动导出站点的根证书保存为PEM格式文件,将代码中的verify=False修改为verify="你的证书文件本地路径.pem"即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:30:05