四个 LeetCode 抓取工具。每个都返回干净的 JSON。
四个 LeetCode 抓取工具,实时输入。leetcode-solution 拉取带代码块的单篇社区题解,leetcode-serp 读取题库,leetcode-problem 返回带题目描述和初始代码的单个题目,leetcode-solutions 读取题解标签页。切换标签,或悬停以暂停并阅读。
一个 API,覆盖 LeetCode 的每个角落。
四个专用抓取工具覆盖重要的页面:题库、单个题目、题解标签页和单篇题解。Crawling API 在真实浏览器中渲染每个页面,通过住宅 IP 访问,并交付干净的 HTML 或 JSON。
完整的题目目录
leetcode-serp 将题库页面转换为 JSON:totalProblems 和 problemCount,外加每一行的 id、title、titleSlug、url、难度、通过率、会员标记和每日一题标记。
题目描述与初始代码
leetcode-problem 返回单个题目,带有以 HTML 和纯文本两种形式呈现的题目描述、难度、分类、主题标签、提示、示例测试用例、LeetCode 提供的每种语言的初始代码片段、相似题目,以及其点赞、点踩和提交计数。
题解标签页
leetcode-solutions 以 JSON 返回题解标签页,每个帖子都带有其 id、title、url、作者名称和用户名、发布日期、标签、投票、浏览和评论数。
单篇题解
添加 scraper=leetcode-solution 即可返回单篇题解,带有其作者、发布日期、标签、互动计数、以 HTML 和纯文本两种形式呈现的正文,以及每个渲染出的代码块及其语言。
1.4 亿住宅 IP
每个请求都会在 30 个地区轮换一个住宅 IP,并自动清除机器人检查。无需求解,无需维护。
每个题目字段,都是干净的 JSON。
发送一个题目 URL 并附上 scraper=leetcode-problem 题目就会以类型化 JSON 返回,包含主题标签和初始代码。换成 leetcode-serp、leetcode-solutions 或 leetcode-solution 即可获取题库和社区题解。
题目
url · string id · string title · string titleSlug · string
题目描述
description · string descriptionHtml · string hints · array exampleTestcases · array
主题与代码
topicTags[].name · string topicTags[].slug · string codeSnippets[].languageSlug · string codeSnippets[].code · string
互动数据
likes · number dislikes · number submissionCount · number acceptanceRate · string
相关题目
similarQuestions[] · array officialSolution.available · boolean officialSolution.hasVideo · boolean solutionsUrl · string
一个调用,从 URL 到数据。
每个 LeetCode 请求都走同一条路径。你发送一个 URL,我们运营其间的一切。
发送 URL
用你的令牌传入任意公开的 LeetCode URL:题库、题目、题解标签页或单篇题解。
轮换代理
从 30 个地区的 1.4 亿 IP 中,选取能干净访问站点的住宅 IP 和地区。
渲染页面
真实浏览器加载页面,使得题目表格、题目描述面板和题解正文在捕获前完成渲染。
清除反爬
站点的机器人检查和限流都会自动处理。无需求解,无需维护。
返回 HTML 或 JSON
返回完整渲染的 HTML,或在你添加 leetcode-serp、leetcode-problem、leetcode-solutions 或 leetcode-solution 时返回类型化 JSON。
团队用 LeetCode 数据构建什么。
题库索引
逐页遍历题库,构建可搜索的索引,收录每个题目的 id、slug、难度、通过率和会员标记。
面试备考工具
提取题目描述、提示、示例测试用例和初始代码片段,为练习应用、间隔重复卡组和内部备考路线提供支持。
模型与智能体评估
将题目描述连同其示例测试用例和参考题解组装成分级基准集,用于评估代码生成模型。
题解与模式挖掘
收集题解标签页和单篇题解,了解社区实际收敛到哪些解法、语言和数据结构。
难度与热度跟踪
随时间跟踪通过率、点赞、点踩、提交数、投票和浏览数,看清哪些题目和题解正在走热。
任意 URL,一个 API
抓取题库、题目、题解标签页和单篇题解,外加你需要的任何其他站点。
抓取 LeetCode 时需要了解的要点。
默认 HTML,按需 JSON
你会得到完整渲染的 HTML。添加 scraper=leetcode-serp、leetcode-problem、leetcode-solutions 或 leetcode-solution 获取已解析的 JSON,或自行解析 HTML。
每日一题是额外的一行
LeetCode 会把每日一题固定在表格上方,因此完整的一页返回的行数会比页面大小多一行。它是唯一将 isDailyQuestion 设为 true 的行,因此请按该标记过滤,而不是按位置过滤。
会员题目只返回元数据
会员题目会保留其标识字段、isPremium 和主题标签,但题目描述和各项计数位于付费墙之后,返回为空。在把空的 description 当作解析失败之前,请先检查 isPremium。
各项计数按显示形式返回
LeetCode 在页面上会缩写超过一千的数字,因此 11.9K 会被还原为 11900。该值带有页面的精度,而不是精确数字。
为大规模抓取 LeetCode 而生。
Crawling API 运行在同一张网络上,为超过 46,000 名付费客户和 70,000 名开发者提供服务。无需购买代理,无需运行浏览器,站点变更时也无需打补丁。
一个令牌,面向 Python、Node 和 Ruby 的官方 SDK,底层是 99.99% 可用性的网络。