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

如何用LeetCode GraphQL查询提取数据并打印全量JSON(Python)

如何用Python获取LeetCode全量用户资料并学习GraphQL查询

一、打印全量用户资料JSON

要获取LeetCode用户的全量公开资料,可通过以下两种方式实现:

1. 用GraphQL自省查询自动生成全量查询

LeetCode的GraphQL接口支持自省查询,能直接获取UserPublicProfile类型的所有可查询字段,进而构建全量查询语句:

import requests
import json

LEETCODE_GRAPHQL_URL = "https://leetcode.com/graphql/"
HEADERS = {
    "Content-Type": "application/json",
    "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"
}

# 自省查询获取UserPublicProfile的所有字段名
introspection_query = """
query {
  __type(name: "UserPublicProfile") {
    fields {
      name
    }
  }
}
"""

resp = requests.post(LEETCODE_GRAPHQL_URL, headers=HEADERS, json={"query": introspection_query})
field_names = [f["name"] for f in resp.json()["data"]["__type"]["fields"]]

# 拼接全量查询语句
full_profile_query = f"""
query userPublicProfile($username: String!) {{
  userPublicProfile(username: $username) {{
    {" ".join(field_names)}
  }}
}}
"""

# 查询目标用户资料并打印全量JSON
variables = {"username": "目标用户名"}
resp = requests.post(LEETCODE_GRAPHQL_URL, headers=HEADERS, json={"query": full_profile_query, "variables": variables})
print(json.dumps(resp.json(), indent=2))

2. 直接复用官方请求(更快捷)

打开目标用户的LeetCode主页,按F12打开开发者工具,在Network标签筛选GraphQL请求,找到获取用户资料的请求,复制其query部分——官方查询已包含大部分常用字段,你可以直接复用并补充遗漏字段。

二、学习编写提取特定信息的GraphQL查询

1. 核心规则:按需取数

GraphQL的核心是只请求你需要的字段,不需要冗余内容。比如仅获取用户名、解题统计和排名:

query userPublicProfile($username: String!) {
  userPublicProfile(username: $username) {
    username
    solvedQuestions {
      total
      easy
      medium
      hard
    }
    ranking
  }
}

在Python中,只需将上述查询替换之前的full_profile_query,即可得到精简后的结果,再解析JSON提取对应数据即可。

2. 学习方法

  • 分析官方请求:通过浏览器开发者工具查看LeetCode自身发送的GraphQL请求,学习字段嵌套、变量使用的方式,这是最贴合场景的实践方法。
  • 掌握基础语法:了解查询结构、嵌套字段、变量、别名等基础概念,结合自省查询得到的字段列表,快速定制符合需求的查询。

注意事项

  • LeetCode的GraphQL接口有速率限制,避免短时间内频繁请求。
  • 部分私密字段(如未公开的提交记录)需要携带登录后的Cookie才能获取,若需此类数据,需在请求头中添加对应Cookie信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 17:30:56