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

如何在Python中用PFX证书实现McMaster API登录请求?

爬取McMaster API数据的Python请求问题

问题背景

  • 需爬取https://www.mcmaster.com网站数据,已获取PFX证书文件(Schallert.pfx)及对应密码短语mcmasterAPI@1901
  • Postman中完成配置(导入请求JSON、填写网站登录邮箱/密码、上传带密码的PFX证书)后,GET请求可正常执行
  • Python实现时,无法确定如何添加网站登录邮箱/密码,且现有代码存在错误,需获取正确的GET请求实现

现有错误代码

import requests_pkcs12
from requests_pkcs12 import get

r = get('https://api.mcmaster.com/v1/login', pkcs12_filename='Schallert.pfx', pkcs12_password='mcmasterAPI@1901')

response = requests_pkcs12.get(r)

print(response.text)

问题分析与修正方案

核心错误点

  1. 错误将第一个get请求的响应对象作为参数传入第二个get方法,requests_pkcs12.get的第一个参数必须是URL字符串
  2. 未传入网站登录的邮箱/密码凭证,结合Postman的配置逻辑,这类场景通常使用HTTP Basic Auth传递登录信息

修正后的代码

import requests_pkcs12

# 替换为你的实际网站登录邮箱和密码
LOGIN_EMAIL = "your_actual_login_email"
LOGIN_PASSWORD = "your_actual_login_password"

# 发起带PFX证书和Basic Auth的GET请求
response = requests_pkcs12.get(
    url="https://api.mcmaster.com/v1/login",
    pkcs12_filename="Schallert.pfx",
    pkcs12_password="mcmasterAPI@1901",
    auth=(LOGIN_EMAIL, LOGIN_PASSWORD)
)

# 输出请求结果
print(f"请求状态码: {response.status_code}")
print(response.text)

额外说明

  • 如果McMaster API不采用Basic Auth传递登录信息,可以打开Postman的请求详情(查看Headers或Params标签),将对应凭证信息添加到请求的headers或params参数中
  • 确保PFX文件路径正确,若文件不在当前脚本执行目录,需填写完整绝对路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 04:15:42