googletrans 的异步 Translator 暴露一个单独的 proxy 参数,并将其传递给 HTTPX 的 AsyncClient:

import asyncio
from googletrans import Translator

async def main():
    async with Translator(proxy='http://proxy.example:8080') as translator:
        translated = await translator.translate('Bonjour', dest='en')
        print(translated.text)

asyncio.run(main())

异步上下文会关闭底层 HTTP 客户端。不 await 就调用 translate 属于另一种 API 形态,不会执行这一异步操作。

即使翻译端点使用 HTTPS,代理 URL 也可以指向普通的 HTTP 监听端口。对于使用非敏感文本的获准测试,HTTP 代理列表 提供公开端点候选。需要代理账户时,应使用该 URL 的 正确编码的用户信息,或 HTTPX 支持的代理配置。

较早的示例传入 proxies 映射,其中包含内部的 httpcore.SyncHTTPProxy 对象。那些示例依赖较旧的 googletrans 和 httpcore 接口。不要将它们与此公开的异步构造函数混用。

googletrans 实现的是 Google Translate 的网页接口;它的软件包与身份验证模型都与官方 Google Cloud Translation SDK 不同。在应用其代理配置之前,请确认应用程序实际导入的是哪个客户端。

相关文章