python 调用翻译
python翻译,调用有道翻译

python翻译,调⽤有道翻译import jsonimport requests# 翻译函数,word 需要翻译的内容def translate(word):# 有道词典 apiurl = '/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null'# 传输的参数,其中 i 为需要翻译的内容key = {'type': "AUTO",'i': word,"doctype": "json","version": "2.1","keyfrom": "fanyi.web","ue": "UTF-8","action": "FY_BY_CLICKBUTTON","typoResult": "true"}# key 这个字典为发送给有道词典服务器的内容response = requests.post(url, data=key)# 判断服务器是否相应成功if response.status_code == 200:# 然后相应的结果return response.textelse:print("有道词典调⽤失败")# 相应失败就返回空return Nonedef get_reuslt(repsonse):# 通过 json.loads 把返回的结果加载成 json 格式result = json.loads(repsonse)return result['translateResult'][0][0]['tgt']def main(err):word = errlist_trans = translate(word)return get_reuslt(list_trans)print(main('傻逼'))""""""。
python使用nltk和jieba实现英译汉 -回复

python使用nltk和jieba实现英译汉-回复如何使用Python的NLTK和jieba库实现英译汉。
第一步:安装Python、NLTK和jieba要开始使用NLTK和jieba进行英译汉,我们需要先安装Python,并确保已经正确安装了NLTK和jieba库。
在安装Python之后,我们可以使用以下命令安装NLTK和jieba:pip install nltkpip install jieba完成安装后,我们还需要预先下载NLTK库中的一些数据资源。
打开Python终端,输入以下代码:import nltknltk.download()这将打开一个图形界面,你可以从中选择要下载的数据。
默认情况下,它将下载一些必要的数据。
也可以下载更多的数据资源,如词汇汇编,停用词等。
下载完成后,我们就准备好开始使用NLTK和jieba进行英译汉了。
第二步:使用NLTK进行英文分词NLTK是一个强大的自然语言处理库,提供了各种功能,包括分词、词性标注、语法分析等。
在这里,我们将使用NLTK的分词功能。
首先,导入所需的库:import nltkfrom nltk.tokenize import word_tokenize然后,我们可以使用`word_tokenize`函数将英文句子分词:sentence = "I love natural language processing."tokens = word_tokenize(sentence)print(tokens)这将输出以下结果:['I', 'love', 'natural', 'language', 'processing', '.']第三步:使用jieba进行中文分词jieba是一个流行的中文分词库。
要开始使用jieba,请导入所需的库:import jieba然后,我们可以使用`jieba.cut`函数将中文句子分词:sentence = "自然语言处理很有趣。
python实现在线翻译功能

python实现在线翻译功能对于需要⼤量翻译的数据,⼈⼯翻译太慢,此时需要使⽤软件进⾏批量翻译。
1.使⽤360的翻译def fanyi_word_cn(string):url="https:///index/search"#db_path = './db/tasks.db'Form_Data= {}#这⾥输⼊要翻译的英⽂Form_Data['query']= stringForm_Data['eng']= '1'#⽤urlencode把字典变成字符串,#服务器不接受字典,只接受字符串和⼆进制data= parse.urlencode(Form_Data).encode('utf-8')#改成服务器可识别的数据后,请求,获取回应数据response= request.urlopen(url, data)html= response.read().decode("utf-8")#解码⽅式#java中的对象(集合)和数组(元素为集合),loads可转Python字典result= json.loads(html)#字典调取键名data下的键名fanyi,获取其值translate_result= result["data"]["fanyi"]#print(translate_result)return translate_result2.使⽤Google⾃带的API来翻译注意,需要安装API模块即可。
pip install translator#google api, per 1000 words everydaydef translate_cn_api(content):translator= Translator(to_lang="zh")translation = translator.translate(content)return translation3.使⽤Google翻译来做,是由于Google提供的API有字节限制,每天只能翻译1000字。
基于python实现百度翻译功能

基于python实现百度翻译功能运⾏环境: python 3.6.0今天处于练习的⽬的,就⽤ python 写了⼀个百度翻译,是如何做到的呢,其实呢就是拿到接⼝,通过这个接⼝去访问,不过中间确实是出现了点问题,不过都解决掉了先晾图后晾代码运⾏结果:代码:# -*- coding: utf-8 -*-"""功能:百度翻译注意事项:中英⽂⾃动切换"""import requestsimport reclass Baidu_Translate(object):def __init__(self, query_string):self.query_string = query_stringself.url_1 = 'https:///sug'# self.url = 'https:///v2transapi' # 这⾥不能⽤这个地址,因为对⽅采⽤了反爬⾍措施,访问这个地址是⼈家是不会给你任何数据的self.url_0 = 'https:///transapi'self.zh_pattern = pile('[\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_1def parse_translate_data(self):"""数据解析,将请求到的翻译内容解析并输出:return: None"""response_0 = self.request_translate()[0]response_1 = self.request_translate()[1]# item = response_0if 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('########## 您已成功退出百度翻译 ##########')breakelse:baidu = Baidu_Translate(query_string=query_keywords)baidu.parse_translate_data()except Exception as e:print('请求出错,请重试', e.args)if __name__ == '__main__':main()总结以上所述是⼩编给⼤家介绍的基于python实现百度翻译功能,希望对⼤家有所帮助,如果⼤家有任何疑问欢迎给我留⾔,⼩编会及时回复⼤家的!。
Python调用有道翻译接口实现翻译

Python调⽤有道翻译接⼝实现翻译最近为了熟悉⼀下 js ⽤有道翻译练了⼀下⼿,写⼀篇博客记录⼀下,也希望能对⼤家有所启迪,不过这些⽹站更新太快,可能⼤家尝试的时候会有所不同。
⾸先来看⼀下⽹页 post 过去的数据⼤家不难发现,我们翻译的内容是放在 post 的 data 中的,这些参数,除了 salt 和 sign 要么就是不会变化,要么就是⼀眼能看出来意义的;那么这个 salt 和 sign 是什么呢?salt 根据 ta 数据的特征,我们应该会想到,这应该是⼀个时间戳,⽽ sign ⼜是什么呢?我们⼀起来看⼀下找到这个 js ⽂件,最上⾯这个 send ⽂件将⾥⾯的 js 代码拷贝出来,格式化⼀下,搜索 sign我们发现,salt 确实是⼀个时间戳,但 sign 呢?,这⾥对 sign 的计算稍微多啰嗦⼏句,如图:⼤家发现 sign 的值,也就是 o ⼀共是对四个参数进⾏求 md5 码,两个是定值,⼀个是前⾯求到的时间戳,还有⼀个是什么呢?这个地⽅我也找了挺久的(还是不懂 js 的痛啊,哭。
)剩下的参数,就是图⽚中所谓的 tvar t = e.i然后在 data 中,⼤家还能发现这么⼀句:i:e.i这个 i 我们对应到 ta 发送的 data 中,不就是我们要翻译的字符串吗?哈哈哈,被我发现了吧!发现这个就好办了,我们找出其中参数之间的关系,⽤Python实现 ta但当我们构造好 data 兴⾼采烈地将数据 post 过去的时候,会发现出现报错了为什么呢?难道是我们的 data 构造的有问题吗?不清楚,先尝试⼀下,咱们吧浏览器中的 data 拷贝进来运⾏⼀下,发现还是出错了;那么说明错误不是出在 data 上⾯了,那究竟是那⾥出了问题呢?难道 ta 还有其他的校验⽅式;别着急继续分析,我们再观察⼀下,post 请求,发现这个请求是带了 cookie的,于是我们猜测,是不是 cookie 的原因呢?还是不清楚,我们尝试⼀下,将 data 对应的cookie 加上,再运⾏⼀下。
python做翻译软件详解,小白也看得明白

python做翻译软件详解,⼩⽩也看得明⽩⽬录前⾔⼀、需要的库⼆、分析处理1.步骤2.思路三.代码的实现1.翻译部分2.图形界⾯代码3.整合总结前⾔对于我这种英语⽐较差的⼈来说,⽆论是敲代码还是看⽂档,那都是离不开翻译软件的,于是我想⾃⼰⽤python做⼀个翻译软件,花了⼀个⼩时,终于做了出来了,⽀持各种语⾔的翻译⼀、需要的库translate:⾕歌翻译的第三⽅包,可以实现多种语⾔之间的相互翻译。
tkinter:Tkinter 是 Python 的标准 GUI 库。
Python 使⽤ Tkinter 可以快速的创建 GUI 应⽤程序。
没有安装的话,复制下⾯的命令,直接安装pip install translatepip install tkinter⼆、分析处理1.步骤要实现翻译软件,需要完成两样东西:1.翻译过程的代码实现2.图形界⾯代码的实现2.思路我的思路是先整体完成翻译的代码,然后再结合图形界⾯的代码重新整合,开搞!三.代码的实现1.翻译部分翻译部分的代码:from translate import Translatorlang1=input("想翻译的语⾔:")lang2=input("翻译为: ")trans_all=Translator(from_lang = lang1.capitalize(), to_lang=lang2.capitalize())text=input("需要翻译的⽂本")text_to=trans_all.translate(text)print(text_to)展⽰⼀⼿:这部分完成后我们来完成图形界⾯2.图形界⾯代码这是我设置的界⾯的⼤⼩:图形界⾯初始化:# 初始化,画布⼤⼩root = Tk()root.geometry('340x540')# 输⼊语⾔提⽰lb1 = Label(root, text="language " "\t""-->" "\t" + " language") lb1.place(relx=0.1, rely=0.05, relwidth=0.8, relheight=0.05)# 第⼀个语⾔输⼊框inp1 = Entry(root)inp1.place(relx=0.1, rely=0.1, relwidth=0.3, relheight=0.1)# 第⼆个语⾔输⼊框inp2 = Entry(root)inp2.place(relx=0.6, rely=0.1, relwidth=0.3, relheight=0.1)效果如下:有强迫症的我,在这个地⽅调了好久好久…最后终于对称了…⼼累然后完成翻译按钮和⽂本的输⼊,输出框# 调⽤翻译# ⽂字提⽰lb2 = Label(root, text="输⼊需要翻译的⽂本")lb2.place(relx=0.1, rely=0.25, relwidth=0.8, relheight=0.05)# 输⼊需要翻译的⽂本inp3 = Entry(root)inp3.place(relx=0.1, rely=0.35, relwidth=0.8, relheight=0.15)# 翻译按钮btn1 = Button(root, text='翻译', command=translate_to)btn1.place(relx=0.4, rely=0.5, relwidth=0.2, relheight=0.1)# 翻译的结果txt = Text(root)txt.place(rely=0.7, relheight=0.2)root.mainloop()最后呈现的效果:到这⾥他只是⼀个躯壳,还没有灵魂,接下来,我们为他注⼊灵魂。
Python使用有道翻译

Python使⽤有道翻译最近想将⼀些句⼦翻译成不同的语⾔,最开始想使⽤Python向有道发送请求包的⽅式进⾏翻译。
这种翻译⽅式可⾏,不过只能翻译默认语⾔,不能选定语⾔,于是我研究了⼀下如何构造请求参数,其中有两个参数最复杂(salt 和 sign),⽹络上有很多⼈发现如何破解,不过我尝试过后发现并不能⽤,有道已经改版了(2018年6⽉改版),使⽤了⾃⼰定义的md5加密⽅式来构建sign参数。
define("newweb/common/service", ["./utils", "./md5", "./jquery-1.7"],function(e, t) {var n = e("./jquery-1.7");e("./utils");e("./md5");var r = function(e) {var t = "" + ((new Date).getTime() + parseInt(10 * Math.random(), 10));return {salt: t,sign: n.md5("fanyideskweb" + e + t + "6x(ZHw]mwzX#u0V7@yfwK")#e 为需要翻译的⽂本, t为时间戳}};define("newweb/common/md5", ["./jquery-1.7"],function(e, t) {var n = function(e, t) {return e << t | e >>> 32 - t},r = function(e, t) {var n, r, i, o, a;return i = 2147483648 & e,o = 2147483648 & t,n = 1073741824 & e,r = 1073741824 & t,a = (1073741823 & e) + (1073741823 & t),n & r ? 2147483648 ^ a ^ i ^ o: n | r ? 1073741824 & a ? 3221225472 ^ a ^ i ^ o: 1073741824 ^ a ^ i ^ o: a ^ i ^ o},i = function(e, t, n) {return e & t | ~e & n},o = function(e, t, n) {return e & n | t & ~n},a = function(e, t, n) {return e ^ t ^ n},s = function(e, t, n) {return t ^ (e | ~n)},l = function(e, t, o, a, s, l, c) {return e = r(e, r(r(i(t, o, a), s), c)),r(n(e, l), t)},c = function(e, t, i, a, s, l, c) {return e = r(e, r(r(o(t, i, a), s), c)),r(n(e, l), t)},u = function(e, t, i, o, s, l, c) {return e = r(e, r(r(a(t, i, o), s), c)),r(n(e, l), t)},f = function(e, t, i, o, a, l, c) {return e = r(e, r(r(s(t, i, o), a), c)),r(n(e, l), t)},d = function(e) {for (var t, n = e.length,r = n + 8,i = 16 * ((r - r % 64) / 64 + 1), o = Array(i - 1), a = 0, s = 0; s < n;) a = s % 4 * 8,o[t = (s - s % 4) / 4] = o[t] | e.charCodeAt(s) << a,s++;return t = (s - s % 4) / 4,a = s % 4 * 8,o[t] = o[t] | 128 << a,o[i - 2] = n << 3,o[i - 1] = n >>> 29,o},View Code当使⽤Python中md5加密⽅法,虽然与有道得到的参数形式很像,但是始终翻译结果为⼀群问好。
Python实现有道翻译

分析salt、sign
全局搜索sign,结果中有fanyi.min.js文件,双击进入,然后右键选择'Open in Source panel',搜 索'sign',找到如下代码:
define("newweb/common/service", ["./utils", "./md5", "./jquery-1.7"], function(e, t) {
Python实现有道翻译
初期操作
打开有道翻译界面—F12—Network—在翻译框中输入'hello'—在Network下面发现名为'translate_o? smartresult......'返回翻译之后的数据
分析参数
把所有的Request Headers、params都写上尝试爬虫,可以得到结果。
def send_request(content, salt, sign):
url = '/translate_o? smartresult=dict&smartresult=rule'
headers = { 'Cookie': 'OUTFOX_SEARCH_USER_ID=-1927650476@223.97.13.65;', 'Host': '', 'Origin': '', 'Referer': '/', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在Python中,你可以使用各种库和API来调用翻译服务。
以下是几个例子:
1. 使用Google Translate API:
首先,你需要从Google Cloud Platform获取API密钥,并安装google-cloud-translate库。
```python
from google.cloud import translate_v2 as translate
translate_client = translate.Client()
def translate_text(target, text):
result = translate_client.translate(text, target_language=target)
return result
print(translate_text('ja', 'Hello, world!')) # 日本語翻訳
```
2. 使用Microsoft Translator API:
首先,你需要从Microsoft Azure获取订阅密钥和终结点,并安装azure-cognitiveservices-translator库。
```python
from azure.cognitiveservices.translator import TranslatorClient
def translate_text(target, text):
translator = TranslatorClient(subscription_key, endpoint)
result = translator.translate(text, target_language=target)
return result
print(translate_text('ja', 'Hello, world!')) # 日本語翻訳
```
3. 使用DeepL翻译API:
首先,你需要从DeepL官网获取API密钥,并安装deepl库。
```python
import deepl
def translate_text(target, text):
translator = deepl.Translator(api_key)
result = translator.translate(text, target_language=target)
return result
print(translate_text('ja', 'Hello, world!')) # 日本語翻訳
```
请注意,这些API通常都有使用限制,例如每天的翻译次数限制或每次翻译的字数限制。
你需要按照你的需求和API的使用条款来使用这些API。