标签: http-status-code-429

如何避免HTTP错误429(Too Many Requests)python

我正在尝试使用Python登录网站并从几个网页收集信息,我收到以下错误:

Traceback (most recent call last):
  File "extract_test.py", line 43, in <module>
    response=br.open(v)
  File "/usr/local/lib/python2.7/dist-packages/mechanize/_mechanize.py", line 203, in open
    return self._mech_open(url, data, timeout=timeout)
  File "/usr/local/lib/python2.7/dist-packages/mechanize/_mechanize.py", line 255, in _mech_open
    raise response
mechanize._response.httperror_seek_wrapper: HTTP Error 429: Unknown Response Code
Run Code Online (Sandbox Code Playgroud)

我用time.sleep()它并且它有效,但它似乎不聪明和不可靠,有没有其他方法来躲避这个错误?

这是我的代码:

import mechanize
import cookielib
import re
first=("example.com/page1")
second=("example.com/page2")
third=("example.com/page3")
fourth=("example.com/page4")
## I have seven URL's I want to open

urls_list=[first,second,third,fourth]

br = mechanize.Browser()
# Cookie Jar
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)

# Browser options 
br.set_handle_equiv(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)

# …
Run Code Online (Sandbox Code Playgroud)

python http mechanize http-status-code-429

75
推荐指数
6
解决办法
19万
查看次数

HTTP API速率限制HTTP响应标头的示例

其中一个附加HTTP状态代码(RFC6585)是

在哪里可以找到对此HTTP响应状态有用的HTTP/REST API速率限制HTTP响应头的示例?

api rest http rate-limiting http-status-code-429

73
推荐指数
2
解决办法
5万
查看次数

如何返回HTTP 429?

我正在使用WCF实现API,规范说在某些情况下返回HTTP 429.

通常我会写:

throw new WebFaultException(HttpStatusCode.NotFound);
Run Code Online (Sandbox Code Playgroud)

但是HttpStatusCode枚举不包含429.

我显然可以演绎到枚举

throw new WebFaultException((HttpStatusCode)429);
Run Code Online (Sandbox Code Playgroud)

但是我担心这不会给调用我的API的应用程序产生正确的结果.

创建扩展HttpStatusCode并发送有效(但不支持)的HTTP状态的最佳方法是什么?

c# wcf http http-status-code-429

41
推荐指数
1
解决办法
1万
查看次数

OpenAI API 给出错误:429 请求过多

我正在尝试使用 Express NodeJS 中的以下代码向 openai API 发出请求:

import { Configuration, OpenAIApi } from "openai";

const configuration = new Configuration({
    organization: "org-Fn2EqsTpiUCTKb8m61wr6H8m",
    apiKey: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
});
const openai = new OpenAIApi(configuration);

async function callApi() {
    const response = await openai.createCompletion({
        model: "text-davinci-003",
        prompt: "Say this is a test",
        max_tokens: 3000,
        temperature: 0,
      });

    console.log(response.data.choices[0].text);
}

callApi();
Run Code Online (Sandbox Code Playgroud)

问题是我不断收到错误 429 Too much requests。

这里有更多信息:

  • API 密钥正确。
  • 当我进入我的 openai 帐户 > 查看 API KEY 时:它显示该密钥从未使用过,因此我从未能够拨打电话。那么我怎么可能收到错误 Too much requests 呢?
  • 我已经尝试在函数中实现指数退避,但没有成功。

node.js express http-status-code-429 openai-api

31
推荐指数
4
解决办法
4万
查看次数

PHP(Apache)静默地将HTTP 429和其他转换为500

我刚刚在PHP的header()方法中发现了一个奇怪的地方,默默地将我的一些状态转换为500.由于我在各种网络搜索中没有找到提及这种行为的运气,我在这里添加它是为了拯救他人一些恶化,还要询问是否有人发现了一个比我想出的更好的解决方法(使用PHP或Zend1).

给出一个简单的PHP脚本,如:

<?php
header('HTTP/1.1 429');
echo "Too Many Requests\n";
Run Code Online (Sandbox Code Playgroud)

我希望得到类似的东西:

HTTP/1.1 429
Date: Thu, 18 Jul 2013 22:19:45 GMT
Content-Length: 11
Content-Type: text/html; charset=UTF-8

Too Many Requests
Run Code Online (Sandbox Code Playgroud)

相反,它实际上返回:

HTTP/1.1 500 Internal Server Error
Date: Thu, 18 Jul 2013 22:19:45 GMT
Content-Length: 11
Content-Type: text/html; charset=UTF-8

Too Many Requests
Run Code Online (Sandbox Code Playgroud)

除此之外,我的apache错误日志中没有事件,访问日志显示正确的状态代码(因此与发送到浏览器的内容不同):

$IP - - [18/Jul/2013:16:31:34 -0700] "GET /test/429.php HTTP/1.1" 429 11 "-" "curl/7.30.0"
Run Code Online (Sandbox Code Playgroud)

使用许多其他状态代码(如401,420,426)进行测试时,一切正常.

如果我是明确的并发送标题('HTTP/1.1 429 Too Many Requests'),一切也可以正常工作; 这将是一个有用的解决方法,除了我使用Zend Framework并且其setHttpResponseCode方法需要一个整数,它用作php的header()函数的第三个参数.

我已经发现它似乎特别适用于RFC 6585中添加的状态(请参阅https://github.com/php/php-src/pull/274),尽管我有点困惑为什么像426这样的状态工作当他们显然没有出现在5.4.14和5.4.16的源代码中(我测试过的两个版本),但是像429这样的非功能性版本.

更新:

正如答案所示,这主要是Apache问题,而不是PHP,我已相应更新了标题.最有趣的似乎是,这仅在某些版本的Apache中得到修复(旧版和新版之间没有明显的一致性).我相信有问题的上游问题在这里:https://issues.apache.org/bugzilla/show_bug.cgi?id = 44995

php apache http-headers http-status-code-429

10
推荐指数
1
解决办法
2994
查看次数

urllib2 HTTP错误429

所以我有一个子reddits列表,我正在使用urllib打开它们.当我经历他们时,urllib最终失败了:

urllib2.HTTPError: HTTP Error 429: Unknown
Run Code Online (Sandbox Code Playgroud)

做一些研究我发现reddit通过IP限制了对服务器的请求数量:

每两秒钟发出一次请求.突发请求有一些限制,但要保持理智.一般情况下,一分钟内保持不超过30个请求.

所以我想我time.sleep()每隔10秒就会将请求限制在一个页面上.这最终也失败了.

上面的引用是从reddit API页面中获取的.我没有使用reddit API.在这一点上,我在想两件事.该限制仅适用于reddit API或urllib也有限制.

有谁知道这两件事中的哪一件?或者我如何解决这个问题?

python urllib2 reddit http-status-code-429

9
推荐指数
2
解决办法
2万
查看次数

Apache2:429,请求响应过多

当我开始大量使用 API 时,我的 Apache 返回 429 错误代码。API 调用由 SAP BusinessObject 生成并发送到我的“反向代理”以将 HTTP 转换为 HTTPS。反向代理通过 HTTPS 将 HTTP 请求转发到 Web 服务器。

15 次请求后,反向代理会在 Apache error.log 中返回 429 错误。这 15 个请求是在 9 分钟内提出的。

我如何配置 Apache 才能处理这种负载/流量?因为在前 15 个请求之后我还有另外 300 个请求......

反向代理配置:

NameVirtualHost *:80
ProxyRequests Off

<VirtualHost *:80>
        ServerName domain.com
        ServerAlias domain.com

        SSLProxyEngine On
        SSLProxyVerify none
        SSLProxyProtocol SSLv3
        ProxyPass / https://domain.com/
        ProxyPassReverse / https://domain.com/

        <Directory proxy:*>
                Order Deny,Allow
                Allow from all
        </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

apache2 http-status-code-429

6
推荐指数
1
解决办法
2万
查看次数

处理 HTTP 429 错误的最佳方法

我正在使用一个 api,如果您在 5 分钟内点击它超过 250 次,它将返回 429,请求太多,响应。计数每五分钟重置一次,所以我一直这样处理:

try
{
    return request.GetResponse();  
}
catch (Exception e)
{
    if (e.Message.Contains("429"))
    {
        System.Threading.Thread.Sleep(5 * 60 * 1000);
        return request.GetResponse();
    }
    else
    {
        throw new Exception(e.Message);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是处理这种情况的正确方法吗?

c# rest http-status-code-429

5
推荐指数
1
解决办法
2万
查看次数

chromedriver 在请求时导致状态代码 429

我在使用 Selenium WebDriver.chromedriver 获取 json 结果数据时遇到问题,服务器将响应 http 状态代码 429 太多请求。但是当我直接使用 chrome 来获取这个 url " https://shop.coles.com.au/search/resources/store/20501/productview/2364711P " 时,它会正常工作。我认为服务器端有一些验证逻辑,但是如何交叉,请帮助非常感谢~

我明白了为什么下面这个js代码被服务器阻止检测我使用webdriver然后阻止我,然后不创建cookies ..

"use strict";
!function() {
    function e(e) {
        var r = (void 0 !== e.stack ? e.stack : "").replace(/"/g, '"')
          , t = {
            stack: r,
            message: e.message,
            name: e.name
        };
        (new Image).src = l + "/error?e=" + encodeURIComponent(JSON.stringify(t)),
        console.log("Error", "\n  name: " + t.name, "\n  message: " + t.message, "\n  stack: " + t.stack)
    }
    function r(e) {
        return "true" === …
Run Code Online (Sandbox Code Playgroud)

selenium-chromedriver http-status-code-429

5
推荐指数
1
解决办法
2629
查看次数

如何绕过 www.instagram.com 的 429 错误?

我今天向您求助是因为我对硒有疑问。我的目标是制作一个完全自动化的机器人,它可以创建一个包含解析详细信息(邮件、通行证、出生日期...)的帐户。到目前为止,我已经几乎创建了该机器人(我只需要访问 Gmail 并获得确认)代码)。

我的问题就在这里,因为我已经尝试了很多东西,我有一个Failed to load resource: the server responded with a status of 429 () 所以,我猜,Instagram 阻止了我。我怎样才能绕过这个?

python instagram selenium-webdriver http-status-code-429

5
推荐指数
1
解决办法
4万
查看次数