ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

百度翻译APP SSE翻译接口协议分析

百度翻译APP SSE翻译接口协议分析 声明本文章中所有内容仅供学习交流使用不用于其他任何目的抓包内容、敏感网址、数据接口 等均已做脱敏处理严禁用于商业用途和非法用途否则由此产生的一切后果均与作者无关有相关问题请第一时间点击头像看简介或私信联系我删除博客部分python# 翻译 def translate(query: str, from_lang: str auto, to_lang: str zh, verboseTrue) - str: ts str(int(time.time())) body { **BODY_STATIC, timestamp: ts, query: query, from: from_lang, to: to_lang, } body[sign] make_sign({**URL_PARAMS, **body}, ts) if verbose: print(f[query] {query}\n[ts] {ts}\n[sign] {body[sign]}) resp requests.post(URL, paramsURL_PARAMS, headersHEADERS, databody, streamTrue, timeout30) ct (resp.headers.get(Content-Type) or ).lower() if verbose: print(f[resp] {resp.status_code} | {ct}) if text/event-stream not in ct: raise RuntimeError(f非 SSE: {resp.text}) final_text, last_event , for line in resp.iter_lines(decode_unicodeTrue): if not line: continue if line.startswith(event:): last_event line[6:].strip() continue if not line.startswith(data:): continue try: obj json.loads(line[5:].strip()) except Exception: continue d obj.get(data) or {} ev d.get(event) or last_event reply d.get(reply) if verbose and reply is not None: print(f {ev} {reply}) if reply and ev in (OnIntermediateResult, OnTransUnitCompleted, OnEventCompleted): final_text reply return final_text if __name__ __main__: print(translate(hello, from_langzh, to_langen)) print(-----) print(translate(hello world, from_langen, to_langzh))结果总结1.出于安全考虑,本章未提供完整流程,调试环节省略较多,只提供大致思路,具体细节要你自己还原,相信你也能调试出来。2.具体更多细节请看名字进入详情了解更多细节具体细节要你自己还原,相信你也能调试出来。
返回列表