Google api 为什么谷歌翻译API给了我这么多403?

Google api 为什么谷歌翻译API给了我这么多403?,google-api,http-status-code-403,google-translate,Google Api,Http Status Code 403,Google Translate,我已经在下面发布了相关代码。我每天有100个请求/秒的报价,总配额为5000万个字符(后者我从未达到)。我在每个批中包含75个请求(即,在下面的示例中,每个组中有75个字符串) 我经常遇到403,通常是在发出请求不到一分钟的很短时间之后。在那之后,直到第二天,再多的退让都不起作用。这真的很让人衰弱,我很不确定为什么会这样。到目前为止,他们的反应小组没有帮助诊断这个问题 下面是一个示例错误: “校验和48af8c32261d9cb8911d99168a6f5b21上的谷歌翻译错误:https://

我已经在下面发布了相关代码。我每天有100个请求/秒的报价,总配额为5000万个字符(后者我从未达到)。我在每个批中包含75个请求(即,在下面的示例中,每个组中有75个字符串)

我经常遇到403,通常是在发出请求不到一分钟的很短时间之后。在那之后,直到第二天,再多的退让都不起作用。这真的很让人衰弱,我很不确定为什么会这样。到目前为止,他们的反应小组没有帮助诊断这个问题

下面是一个示例错误:

“校验和48af8c32261d9cb8911d99168a6f5b21上的谷歌翻译错误:https://www.googleapis.com/language/translate/v2?q=QUERYSTRING&source=ja&target=en&key=MYKEY&format=text&alt=json 返回“超出用户速率限制”>“

def\u google\u translate\u回调(self、request\u id、response、err):
如果出现错误:
打印“请求id%s上的Google翻译错误:%s%”(请求id,错误)
打印“后退%d秒”。%self.backoff
睡眠(自我退避)
如果自退避<4096:
self.backoff=self.backoff*2
self.\u translate\u array\u google\u helper()
其他:
翻译=响应['translations'][0]['translatedText']\
.替换(“,”))\
.替换(“';”,“”)
self.translations.append((请求\u id,翻译))
如果已完成():
self.is_=False
其他:
自电流_组+=1
self.\u translate\u array\u google\u helper()
def_translate_array_google_helper(self):
如果self.current\u group>=len(self.groups):
self.is_=False
返回
service=self.google\u translator.translations()
组=自身组[自身当前组]
batch=self.google\u translator.new\u batch\u http\u请求(
callback=self.\u谷歌\u翻译\u回调
)
对于文本,请求组中的\u id:
格式='文本'
如果是html(文本):
格式='html'
batch.add(
服务列表(q=文本,格式=格式),
目标=self.to_lang,源=self.from_lang),
请求\u id=请求\u id
)
batch.execute()

听起来您达到了每用户每秒100个请求的限制/userI同意,但为什么回退不起作用?
def _google_translate_callback(self, request_id, response, err):
    if err:
        print 'Google Translate Error on request_id %s: %s' % (request_id, err)
        print 'Backing off for %d seconds.' % self.backoff
        sleep(self.backoff)
        if self.backoff < 4096:
            self.backoff = self.backoff * 2
        self._translate_array_google_helper()
    else:
        translation = response['translations'][0]['translatedText'] \
                      .replace('&quot;', '"') \
                      .replace('&#39;', "'")
        self.translations.append((request_id, translation))

        if is_done():
            self.is_translating = False
        else:
            self.current_group += 1
            self._translate_array_google_helper()

def _translate_array_google_helper(self):
    if self.current_group >= len(self.groups):
        self.is_translating = False
        return

    service = self.google_translator.translations()
    group = self.groups[self.current_group]
    batch = self.google_translator.new_batch_http_request(
        callback=self._google_translate_callback
        )
    for text, request_id in group:
        format_ = 'text'
        if is_html(text):
            format_ = 'html'

        batch.add(
            service.list(q=text, format=format_,
                         target=self.to_lang, source=self.from_lang),
            request_id=request_id
            )
    batch.execute()