运行环境: python 3.6.0
今天处于练习的目的,就用 python 写了一个百度翻译,是如何做到的呢,其实呢就是拿到接口,通过这个接口去访问,不过中间确实是出现了点问题,不过都解决掉了
先晾图后晾代码
运行结果:
代码:
# -*- coding: utf-8 -*- """ 功能:百度翻译 注意事项:中英文自动切换 """ import requests import re class Baidu_Translate(object): def __init__(self, query_string): self.query_string = query_string self.url_1 = 'https://fanyi.baidu.com/sug' # self.url = 'https://fanyi.baidu.com/v2transapi' # 这里不能用这个地址,因为对方采用了反爬虫措施,访问这个地址是人家是不会给你任何数据的 self.url_0 = 'https://fanyi.baidu.com/transapi' self.zh_pattern = re.compile('[\u4e00-\u9fa5]+') self.headers = { 'Accept': '* / *', 'Accept - Encoding': 'gzip, deflate', 'Accept - Language': 'zh-CN, zh; q=0.9', 'Connection': 'keep - alive', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36', 'X-Requested-With': 'XMLHttpRequest', } def get_post_data(self): """ 拿到 post 请求上传的参数,并判断输入类型并予以返回 :return: 查询词 """ if re.search(pattern=self.zh_pattern, string=self.query_string): # 输入的内容含有中文,则判别其为中文输入 return { "from": "zh", "to": "en", "kw": self.query_string, # 模糊查询 url_1关键词 "query": self.query_string, # 精准查询 url_0关键词 } else: return { "from": "en", "to": "zh", "kw": self.query_string, # 模糊查询 url_1关键词 "query": self.query_string, # 精准查询 url_0关键词 } def request_translate(self): """ 向百度请求 json 数据 :return: 向百度请求的 json 数据 """ data = self.get_post_data() try: response_0 = requests.request(method="post", url=self.url_0, headers=self.headers, data=data).json() except Exception: # 进行数据请求的任何异常处理 response_0 = '' try: response_1 = requests.request(method="post", url=self.url_1, headers=self.headers, data=data).json() except Exception: # 进行数据请求的任何异常处理 response_1 = '' return response_0, response_1 def parse_translate_data(self): """ 数据解析,将请求到的翻译内容解析并输出 :return: None """ response_0 = self.request_translate()[0] response_1 = self.request_translate()[1] # item = response_0 if response_0: item = response_0.get('data')[0].get('dst') print('key word:', self.query_string, '\t', 'translate:', item) if response_1: data = response_1.get('data') print() for item in data[:1]: # 长度一般为5,这里只保留其释义 print('key word: \t[ {key} ]'.format(key=item.get('k'))) print('value: \t\t[ {value} ]'.format(value=item.get('v'))) print() # print(response_1.get('data')) def main(): """ 主函数 :return: None """ while True: try: query_keywords = input("""请输入您要翻译的内容 [ 输入四个'0'退出 ] : """) if query_keywords == "0000": # 如果输入四个 '0',退出小程序 print('########## 您已成功退出百度翻译 ##########') break else: baidu = Baidu_Translate(query_string=query_keywords) baidu.parse_translate_data() except Exception as e: print('请求出错,请重试', e.args) if __name__ == '__main__': main()
总结
以上所述是小编给大家介绍的基于python实现百度翻译功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
标签:
python,百度翻译
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“基于python实现百度翻译功能”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2025年01月11日
2025年01月11日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]