Crawling API / Stack Exchange

Stack Exchange 抓取工具。
每个站点,完整渲染。

发送任意 Stack Exchange URL,即可获得完整渲染的 HTML,通过住宅代理并内置反爬处理。
或使用 stackexchange-serp 和 stackexchange-thread 抓取工具获取结构化 JSON。

99% 成功率1.4 亿住宅 IP30 个地区
Stack Exchange URLHTML or JSONstackoverflow.com/questions/2861071Crawlbase路由渲染提取渲染后的 HTML结构化 JSONcrawling-apistackexchange-threadstackoverflow.com · 限流已重新路由 · 200
实时抓取流 · Stack Exchange1.24M req/min流式传输
200mathoverflow.net/questions/tagged/nt.number-theoryDE124ms
200security.stackexchange.com/questions/tagged/tlsES146ms
200dba.stackexchange.com/questions/tagged/postgresqlDE152ms
200serverfault.com/questions/tagged/nginxBR47ms
200security.stackexchange.com/questions/tagged/tlsSG114ms
200mathoverflow.net/questions/tagged/nt.number-theoryIN135ms
200askubuntu.com/questionsGB152ms
200askubuntu.com/questionsNL200ms
200mathoverflow.net/questions/tagged/nt.number-theoryGB144ms
200stackoverflow.com/search?q=async+awaitGB167ms
200superuser.com/questions/217504/how-do-i-record-my-screenJP98ms
200stackoverflow.com/questions/tagged/pythonBR59ms
200stackoverflow.com/search?q=async+awaitAU54ms
200superuser.com/questions/217504/how-do-i-record-my-screenIN195ms
200askubuntu.com/questionsES127ms
200unix.stackexchange.com/questions/tagged/bashAU201ms
200math.stackexchange.com/questions/tagged/linear-algebraSG189ms
200superuser.com/questions/217504/how-do-i-record-my-screenAU69ms
200askubuntu.com/questions/tagged/aptSG47ms
301unix.stackexchange.com/questions/tagged/bashNL77ms
200security.stackexchange.com/questions/tagged/tlsCA148ms
200stackoverflow.com/search?q=async+awaitIN41ms
200stackoverflow.com/questions/tagged/pythonNL87ms
200stackoverflow.com/search?q=segmentation+faultFR174ms
301stackoverflow.com/questions/2861071/how-to-modify-a-text-fileNL102ms
200serverfault.com/questionsCA118ms
200mathoverflow.net/questions/tagged/nt.number-theoryDE124ms
200security.stackexchange.com/questions/tagged/tlsES146ms
200dba.stackexchange.com/questions/tagged/postgresqlDE152ms
200serverfault.com/questions/tagged/nginxBR47ms
200security.stackexchange.com/questions/tagged/tlsSG114ms
200mathoverflow.net/questions/tagged/nt.number-theoryIN135ms
200askubuntu.com/questionsGB152ms
200askubuntu.com/questionsNL200ms
200mathoverflow.net/questions/tagged/nt.number-theoryGB144ms
200stackoverflow.com/search?q=async+awaitGB167ms
200superuser.com/questions/217504/how-do-i-record-my-screenJP98ms
200stackoverflow.com/questions/tagged/pythonBR59ms
200stackoverflow.com/search?q=async+awaitAU54ms
200superuser.com/questions/217504/how-do-i-record-my-screenIN195ms
200askubuntu.com/questionsES127ms
200unix.stackexchange.com/questions/tagged/bashAU201ms
200math.stackexchange.com/questions/tagged/linear-algebraSG189ms
200superuser.com/questions/217504/how-do-i-record-my-screenAU69ms
200askubuntu.com/questions/tagged/aptSG47ms
301unix.stackexchange.com/questions/tagged/bashNL77ms
200security.stackexchange.com/questions/tagged/tlsCA148ms
200stackoverflow.com/search?q=async+awaitIN41ms
200stackoverflow.com/questions/tagged/pythonNL87ms
200stackoverflow.com/search?q=segmentation+faultFR174ms
301stackoverflow.com/questions/2861071/how-to-modify-a-text-fileNL102ms
200serverfault.com/questionsCA118ms
01 实时演示

一个抓取工具,每个 Stack Exchange 站点。

实时输入的 Crawling API。观看 stackexchange-serp 抓取工具从 Super User、Ask Ubuntu 和 MathOverflow 返回结构化 JSON - 同一个调用适用于网络中的任何站点。悬停以暂停并阅读。

就绪
按键 1-3 切换 · 点击暂停运行你自己的 URL
几分钟内运行你的第一个请求。最多 20,000 次免费请求,无需信用卡。免费开始
02 功能

一个 API,整个 Stack Exchange 网络。

这两个抓取工具是 host-agnostic 的,因此同一个调用可用于 Stack Overflow、Super User、Ask Ubuntu、MathOverflow 以及每个 *.stackexchange.com 站点。Crawling API 在真实浏览器中渲染每个页面,通过住宅 IP 访问,并交付干净的 HTML 或 JSON。

网络

每个 Stack Exchange 站点

stackoverflow.com、superuser.com、askubuntu.com、serverfault.com、mathoverflow.net 以及所有 *.stackexchange.com 社区都通过同样的两个抓取工具运行。

代理

1.4 亿住宅 IP

Stack Exchange 会对数据中心 IP 限流,因此每个请求都会在 30 个地区轮换一个住宅 IP,像真实的本地访客一样访问每个站点。

反爬

封锁由我们处理

CAPTCHA、机器人墙和限流都会自动清除。无需求解,无需维护。

格式

HTML 或 JSON

获取完整渲染的 HTML,或添加 scraper=stackexchange-serpstackexchange-thread 以将问题列表和完整主题作为结构化 JSON 返回。

附加

截图和异步

同一个调用可以捕获整页截图,或通过 webhook 和云存储异步运行。

一个令牌

一个 API 覆盖每个站点

Crawling API 适用于任意 URL,因此同一个令牌覆盖整个 Stack Exchange 网络以及你抓取的其他一切。 查看实时演示.

03 输出

每个主题字段,都是干净的 JSON。

发送一个问题 URL 并附上 scraper=stackexchange-thread 主题就会以类型化 JSON 返回。换成 stackexchange-serp 即可对问题列表、标签和搜索结果做同样的事。

{ "question": { "id": "2861071", "title": "How to modify a text file?", "score": 312, "viewCount": 486201, "tags": [ "python", "file" ], "askedAt": "2010-05-18T20:11:33Z", "author": { "name": "Nathan Fellman", "url": "https://stackoverflow.com/users/8460", "reputation": 127843 }, "comments": [ { "score": 3, "createdAt": "2010-05-18T20:19:04Z" } ] }, "answerCount": 2, "answers": [ { "id": "2861108", "score": 401, "isAccepted": true, "body": "Read the file into a list of lines, insert, then write it back.", "author": { "name": "Roberto Bonvallet", "url": "https://stackoverflow.com/users/193568", "reputation": 30215 }, "createdAt": "2010-05-18T20:15:52Z", "comments": [ { "score": 12, "createdAt": "2010-05-18T21:02:11Z" } ] } ] }

问题

question.id · string  question.title · string  question.score · number  question.viewCount · number

作者

question.author.name · string  question.author.url · string  question.author.reputation · number

回答

answerCount · number  answers[].score · number  answers[].isAccepted · boolean  answers[].body · string

评论

question.comments[] · array  answers[].comments[].score · number  answers[].comments[].createdAt · string

标签

question.tags · array  question.askedAt · string  answers[].createdAt · string

04 工作原理

一个调用,从 URL 到数据。

每个 Stack Exchange 请求都走同一条路径。你发送一个 URL,我们运营其间的一切。

01

发送 URL

用你的令牌传入任意公开的 Stack Exchange URL:网络中任意站点上的问题、标签、搜索或列表。

02

轮换代理

从 30 个地区的 1.4 亿 IP 中,选取能干净访问每个站点的住宅 IP 和地区。

03

渲染页面

真实浏览器加载页面,使得分数、回答和评论在捕获前完成渲染。

04

清除反爬

每个站点的机器人检查和逐页限流都会自动处理。无需求解,无需维护。

05

返回 HTML 或 JSON

返回完整渲染的 HTML,或在你添加 stackexchange-serp 或 stackexchange-thread 时返回类型化 JSON。

05 使用场景

团队用 Stack Exchange 数据构建什么。

USE / 01知识

开发者知识挖掘

在整个网络中提取问题、被采纳的回答和评论,构建可搜索的知识库。

USE / 02训练

训练数据与 RAG

通过一个 API 将干净的问答文本喂给模型、RAG 管道和编码代理。

USE / 03趋势

技术趋势监测

关注各站点的标签和搜索页,尽早发现崛起的语言、工具和话题。

USE / 04问答

问答数据集

为评估和基准组装结构化的问题、回答和投票数据集。

USE / 05研究

竞争与开发者研究

挖掘真实的开发者问题、错误和变通方法,为产品和文档提供依据。

USE / 06覆盖

任意 URL,一个 API

在网络中抓取问题、标签、用户页和搜索,外加你需要的任何其他站点。

06 须知

抓取 Stack Exchange 时需要了解的要点。

一对抓取工具,每个站点

stackexchange-serp 和 stackexchange-thread 是 host-agnostic 的,因此这两个抓取工具覆盖 Stack Overflow、Super User、Ask Ubuntu、MathOverflow 以及所有 *.stackexchange.com 社区。

默认 HTML,按需 JSON

你会得到完整渲染的 HTML。添加 scraper=stackexchange-serp 或 stackexchange-thread 获取已解析的 JSON,或自行解析 HTML。

设计上使用住宅代理

Stack Exchange 会对数据中心 IP 限流,因此请求通过住宅池路由。每个请求轮换一个全新 IP,使访问保持稳定。

从任何地方访问每个站点

覆盖 30 个地区和 1.4 亿住宅 IP 的地理定位意味着无需管理代理即可稳定访问。

07 为何选择 Crawlbase

为大规模抓取 Stack Exchange 而生。

Crawling API 运行在同一张网络上,为超过 46,000 名付费客户和 70,000 名开发者提供服务。无需购买代理,无需运行浏览器,Stack Exchange 站点变更时也无需打补丁。

99%
平均请求成功率
140M
住宅 IP,另加 9800 万数据中心 IP
30
用于精确本地结果的地区数
20/s
默认每秒请求数,可按需提升

一个令牌,面向 Python、Node 和 Ruby 的官方 SDK,底层是 99.99% 可用性的网络。

08 常见问题

关于抓取 Stack Exchange 的问题。

用你的令牌将任意 Stack Exchange URL 发送到 Crawlbase Crawling API。Crawlbase 会轮换一个住宅代理,在真实浏览器中渲染页面,清除机器人检查,并返回完整渲染的 HTML。添加专用抓取工具(scraper=stackexchange-serpstackexchange-thread)即可改为获取结构化 JSON。
可以。默认情况下 Crawling API 返回渲染后的 HTML;添加专用抓取工具(scraper=stackexchange-serp 用于问题列表、标签和搜索,stackexchange-thread 用于带回答和评论的完整问题)即可接收结构化 JSON,或自行解析 HTML。
两个抓取工具都是 host-agnostic 的,因此它们通过同一个 API 适用于 stackoverflow.com、所有 *.stackexchange.com 站点、superuser.com、askubuntu.com、serverfault.com 和 mathoverflow.net。
Crawlbase 通过 30 个地区的轮换住宅 IP 路由每个请求,并自动清除机器人检查。Stack Exchange 会对数据中心 IP 限流,因此住宅池使访问保持稳定,站点更改配置时也无需维护。
stackexchange-serp 从标签、搜索或列表页返回一个问题列表,每个都带有标题、分数、回答数、浏览数、标签和摘要,外加分页。stackexchange-thread 返回单个问题页:完整的问题正文以及每个回答和评论,包括分数、采纳状态、作者声望和时间戳。
任意公开 URL:网络中任意站点上的问题及其回答、标签列表、用户资料和搜索结果页。同一个 API 也适用于任何其他站点。
免费开始,最多 20,000 次请求且无需信用卡。付费套餐随用量扩展,同一个令牌在 Crawling API 和每个 Crawlbase 抓取工具中通用。

开始抓取 Stack Exchange。
省去代理和限流。

免费开始,最多 20,000 次请求。一个令牌用于 Crawling API 和每个抓取工具。