为什么Google Translate API会给我这么多403s?

时间:2015-11-11 04:27:48

标签: google-api http-status-code-403 google-translate

我在下面发布了相关代码。我有100个请求/秒的报价和每天50M字符的总配额(后者我从未打过)。我在每批中包含75个请求(即在下面,每组中有75个字符串)。

我经常跑到403s,通常是在不到一分钟的时间内解雇请求。在那之后,直到第二天才能进行退避。这真的让人虚弱,我不确定为什么会这样。到目前为止,他们的响应团队对诊断问题没有帮助。

以下是一个示例错误:

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

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()        

0 个答案:

没有答案