importrandomimporthashlibimporthttp.client,urllib.parseimportjsonclassbaidu_trans:#接口地址domain='api.fanyi.baidu.com'uri="/api/trans/vip/translate"#key相关app_id=""app_screct=""salt=random.randint(32768,65536)#错误代码errors_code={"52000":"Success","52001":"RequestTimedOut","52002":"SystemError","52003":"UnauthorizedUser","54000":"所需参数为空","54001":"签名错误","54003":"访问频率受限","54004":"账户余额不足","54005":"频繁longqueryrequests","58000":"客户端IP非法","58001":"不支持目标语言方向","58002":"服务当前已关闭","90107":"认证失败orfailedValid",}#生成签名defgetSign(self,context):sign=self.app_id+context+str(self.salt)+self.app_screctmd5_obj=hashlib.md5()md5_obj.update(sign.encode('utf-8'))returnmd5_obj.hexdigest()pass#翻译文本转换成指定的语言deftrans(self,context):httpClient=Noneform={"q":context,“from”:“en”,“to”:“zh”,“appid”:self.app_id,“salt”:self.salt,“sign”:self.getSign(context),}try:url=self.uri+'?appid='+form["appid"]+'&q='+urllib.parse.quote(form["q"])+'&from='+form["from"]+'&to='+form["to"]+'&salt='+str(form["salt"])+'&sign='+form['sign']httpClient=http.client.HTTPConnection(self.domain)httpClient.request('GET',url)response=httpClient.getresponse()result=json.loads(bytes.decode(response.read()))如果'error_code'inresult:print('错误'+result["error_code"]+':'+self.errors_code[result["error_code"]])returnresult["trans_result"][0]['dst']除了Exceptionase:print(e)finally:ifhttpClient:httpClient.close()通过通过
