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

Python requests调用USPTO API返回403错误,cURL请求正常

解决USPTO API Python请求403错误问题

你的问题出在请求头缺失或不符合CloudFront的验证要求——curl会自动带上默认的User-Agent等头信息,而Python请求库(比如requests)默认的请求头可能被CloudFront的反爬策略拦截了。

修复方案:

复制curl的请求头(尤其是User-Agent),确保请求体以正确的JSON格式发送,以下是可直接运行的Python脚本:

import requests

url = "https://ped.uspto.gov/api/queries"

headers = {
    "accept": "application/json",
    "Content-Type": "application/json",
    # 带上curl默认的User-Agent,也可替换为常见浏览器UA
    "User-Agent": "curl/7.81.0"
}

payload = {
    "searchText": "*:*",
    "fq": [
        "totalPtoDays:[1 TO 99999]",
        "appFilingDate:[2005-01-01T00:00:00Z TO 2005-12-31T23:59:59Z]"
    ],
    "fl": "*",
    "mm": "100%",
    "df": "patentTitle",
    "facet": "true",
    "sort": "applId asc",
    "start": "0"
}

response = requests.post(url, headers=headers, json=payload)

# 查看响应结果
print(response.status_code)
print(response.json())

关键注意点:

  • 不要手动拼接JSON字符串:用json=payload参数让requests自动处理序列化,避免格式错误
  • 必须带上合法的User-Agent:CloudFront会拦截无UA或疑似爬虫的UA,curl默认UA或浏览器UA(如Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36)都可使用
  • 对齐curl的请求头:可以用curl -v查看完整请求头,确保Python请求没有遗漏必要字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:30:44