什么是 API 速率限制?
Scrapeless Scraping API 接受经过文档化的数据请求,其使用应根据当前服务指南中显示的账户和产品限制进行规划。
API 速率限制是一项服务规则,用于控制呼叫者在定义时间段内或一次可以发出多少请求。限制保护了共享容量,支持公平访问,并且可以使使用变得可预测。确切的单位很重要:每秒请求、每分钟请求、并发作业和每月积分回答不同的问题。它们之间不能相互推断。
一个忽略限制的客户端可能会收到而不是它所期待的数据的响应。一个过度修正的客户端可能会留下可用的容量未被使用。实际任务是识别提供者的实际政策,测量需求,并调度请求,以便应用程序保持在其授权分配之内。
API限制测量是什么
每个时间窗口规则计算在定义的时间间隔内归因于呼叫者的请求。并发规则计算仍在进行中的操作。使用配额可能会计算更长会计周期内的可计费单位。这些措施可以共存。一个处于日配额内的应用程序仍然可以超过短暂的突发限制,而一个发送速度缓慢的客户端仍然可以同时运行过多的长任务。
提供者可以将请求归因于API密钥、用户、组织、IP地址或操作。 HTTP 429 状态说明 注意,实施范围各不相同。不要假设每个进程一个密钥就会创建独立的容量,或者不同的端点具有相同的阈值。请阅读该账户和端点的特定文档。
单位也应明确。一项请求可能会创建一个任务,其工作在初始响应之后继续。批量请求可能消耗与单个项目请求不同的单位。如果提供者仅发布使用信用余额,这不一定是速率限制。单独建模每条规定,以便您的调度程序可以遵守实际适用的规定。
为什么存在限制以及它们适用的地方
一个服务具有有限的计算、网络和下游容量。一个限制可以防止一个调用者的突发流量降低其他调用者的性能。它还可以减少当客户端循环发送超过预期请求时的意外负载。该策略可以在应用代码看到请求之前在网关处强制执行,或者在具有更具体成本模型的特定操作内部强制执行。
一个上游网站和API提供者是独立的系统。抓取API可以拥有自己的账户控制,而目标网站则拥有独立的访问和流量规则。提供者的容量分配并不授权忽略目标网站的适用条款或访问限制。围绕授权数据和您调用的服务的实际限制进行计划收集。
抱歉,您提供的文本不完整。请提供完整的文本,以便我进行翻译。 HTTP状态扩展定义429 允许服务器传达来电者在一段时间内发送了过多请求。这并未定义一种通用的计数算法。该选择属于服务。客户端代码应依赖于发布的政策和观察到的响应字段,而不是假设特定的桶实现。
如何读取HTTP 429
HTTP 429 请求过多表示调用者超过了速率控制。这与格式错误的请求或缺少凭据是不同的。响应可能会描述超过了哪个规则,并可能指示调用者在发出更多请求之前应该等待多久。主体和头部是特定于提供者的,因此记录相关字段时请勿泄露秘密。
单单状态并不能告诉你限制是与单个端点、整个账户还是共享IP相关。将请求时间戳、密钥、操作和并发工作负载与文档化的政策进行比较。如果多个工作者共享相同的配额,一个工作者的本地计数无法解释总数。集中协调或在可用时使用提供者的使用数据。
不要将每个非200的结果视为速率限制。访问拒绝、验证失败和上游源不可用可能需要不同的响应。在更改计划之前,请分类实际状态和记录的错误。 HTTP语义标准 提供更广泛的状态上下文,有助于保持这些类别的独立性。
在已知分配内安排工作
客户端可以将待处理的工作放入队列中,并以提供者发布的规则一致的速率释放它。对于固定请求窗口,跟踪归因于共享账户的请求,避免发送超过其配额的请求。对于并发限制,当现有任务完成时,释放一个新任务。这些控制应代表提供者的实际单位,而不是在每次调用之间的任意休眠。
不同的操作可能会花费不同的时间或积分。如果延迟很重要,请将交互请求的计划与后台收集分开。仅在提供者政策和业务需求合理时为紧急路径保留容量。队列还提供了一个去重工作的地方:多次请求相同的未更改记录可能会浪费资源,而不会改善结果。
当提供者提供使用头或仪表板计数时,将它们与客户端会计进行比较。它们可以揭示其他使用相同密钥的过程或一个计算方式与预期不同的规则。不要将猜测的阈值硬编码到发布的指导中。使用与当前提供者文档相关联的配置值,并在服务发生变化时进行审查。
速率限制、积分和数据新鲜度
速率限制控制节奏,而信用余额或计划津贴控制消耗。一个工作流可以适应一个而违反另一个。估计一次运行所需的源记录、演员调用和结果检查的数量。然后检查产品的收费情况以及异步操作是在提交、完成还是其他记录阶段计数。
新鲜度目标可能与容量相冲突。如果目录需要每日更新,但分配无法覆盖每天的每个项目,则根据它们的变化频率和重要性对记录进行优先排序。将观察时间存储在每个记录中,以便消费者可以看到其年龄。不要仅仅因为API响应在语法上成功,就将过时的值呈现为当前值。
The Scrapeless Scraping API 文档 识别支持的演员工作流; 产品概述 描述结构化数据访问。请参阅当前账户使用情况和产品指南以获取适用的容量。相关的 演员指南 有助于在规划需求时区分即时结果和基于任务的流程。
诊断意外限制
首先识别确切的响应和产生该响应的操作。检查请求是否使用了预期的密钥,以及后台工作者是否共享该密钥。将当前流量与特定产品和端点的政策进行比较。每秒发送一个请求的本地进程仍然可能是超出账户整体限制的舰队的一部分。
接下来检查任务生命周期和重复。比文档要求的更频繁地轮询异步结果可能会消耗请求而不会加速潜在的任务。由重叠的时间表触发的重复作业也可以执行相同操作。在提出上限请求之前纠正工作流模型;否则,额外的容量可能仅仅会加剧浪费。
最后,保持记录的限制和观察到的临时条件之间的区别。单个429证明该请求违反了一个主动规则;这并不揭示每个阈值或保证永久的政策值。记录请求提供者特定问题所需的证据,并保持客户端行为在实际上已确认的分配范围内。
结论
API速率限制控制提供者定义的分配内的请求节奏或并发工作。理解被计算的单位,跨工人共享会计,并根据发布的政策解释HTTP 429。合理的调度既能保护服务容量,又能提高数据工作流的质量。
规划您的抓取API工作负载
从一个记录的演员开始,将请求计划的规模调整为您账户中可见的限制。
今天注册并获得 $5的免费信用 — 无须信用卡.
领取您的$5信用 →常见问题
API速率限制与每月配额是一样的吗?
API速率限制通常控制节奏或并发,而每月配额控制计费或分配周期内的总使用量。提供者可能同时应用两者。在设计调度器之前,请检查每个发布规则的单位、范围和周期。
HTTP 429对API客户端意味着什么?
HTTP 429表示服务器认为呼叫者在定义的时间段内发送了过多的请求。响应可能包括有关活动规则或等待间隔的详细信息。在更改流量行为之前,请检查提供者的错误格式和账户使用情况。
多个工作者可以在没有协调的情况下使用一个API密钥吗?
多个工作者可以在使用一个API密钥或账户时共享相同的分配。每个工作者可以在本地阈值下保持,但它们的组合流量超过了提供者规则。在整个应用程序中协调共享计数或并发预算。
速率限制是否告诉我可以收集多少记录?
请求限制本身并不确定记录数量。一次请求可以返回零个、一个或多个记录,具体取决于操作,单独的配额可能以不同方式计算使用量。根据记录的演员行为估计记录,并测量代表性的工作负载。