python自动翻译导学案_批量翻译踩过的坑--python
## python之批量翻译
#### 一、有道翻译接口
**以该demo为例,调用接口用不用加密、headers传不传都可以,等访问次数达到一定量就不行了了(目前我试过的都是,更换ip访问也是不行),如果数据量不大,可以用此方法**
```python
from openpyxl import load_workbook
import requests
import hashlib
import time
import urllib.parse
#创建md5对象
def nmd5(str):
m = hashlib.md5()
# Tips
# 此处必须encode
# 若写法为m.update(str) 报错为: Unicode-objects must be encoded before hashing
# 因为python3里默认的str是unicode
# 或者 b = bytes(str, encoding='utf-8'),作用相同,都是encode为bytes
b = str.encode(encoding='utf-8')
m.update(b)
str_md5 = m.hexdigest()
return str_md5
def formdata(transtr):
# 待加密信息
headerstr = '5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
#print(round(time.time()*1000))
bv=nmd5(headerstr)
ts=str(round(time.time()*1000))
salt=ts+'90'
strexample='fanyideskweb'+transtr+salt+'n%A-rKaT5fb[Gy?;N5@Tj'
sign=nmd5(strexample)
#print(sign)
i=len(transtr)
#print(i)
# print('MD5加密前为 :' + headerstr)
# print('MD5加密后为 :' + bv)
dict={'i':transtr,'from':'AUTO','TO':'AUTO','smartresult': 'dict',
'client':'fanyideskweb',
'salt':salt,
'sign':sign,
'ts':ts,
'bv':bv,
'doctype':'json',
'version':'2.1',
'keyfrom':'fanyi.web',
'action':'FY_BY_REALTlME'
}
return dict
workbook = load_workbook(r'xxxxx')
sheet = workbook['Sheet1']
for row in range(1146, 1600):
s = ''
name = sheet.cell(row=row, column=6).value
url='http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',
'Referer':'http://fanyi.youdao.com/',
'Origin': 'http://fanyi.youdao.com',
'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',
'X-Requested-With':'XMLHttpRequest',
'Accept':'application/json, text/javascript, */*; q=0.01',
'Accept-Encoding':'gzip, deflate',
'Accept-Language':'zh-CN,zh;q=0.9',
'Connection': 'keep-alive',
'Host': 'fanyi.youdao.com',
'cookie':'_ntes_nnid=937f1c788f1e087cf91d616319dc536a,1564395185984; OUTFOX_SEARCH_USER_ID_NCOO=; OUTFOX_SEARCH_USER_ID=-10218418@11.136.67.24; JSESSIONID=; ___rl__test__cookies=1'
}
dict=formdata(name)
dict=urllib.parse.urlencode(dict)
dict=str(dict)
#dict=urllib.parse.urlencode(dict).encode('utf-8')
try:
req = requests.post(url, data=dict, headers=header)
val = req.json()
translate_result = val['translateResult'][0]
except Exception as e:
print(e)
else:
if len(translate_result) > 1:
# print(len(translate_result))
for i in range(len(translate_result)):
s = s + translate_result[i]["tgt"]
sheet.cell(row=row, column=7, value=s)
print(row)
else:
translate = translate_result[0]["tgt"]
sheet.cell(row=row, column=7, value=translate)
print(row)
time.sleep(1)
workbook.save('xxxxx')
print('翻译结束')
```
#### 二、python的第三方库(from translate import Translator)
**下载: pip install translate (该库下载比较慢,耐心等待)**
**该方法也是有字符限制 , 翻译到一定字符就开始返回,意思就是说翻译达到了上限
MYMEMORY WARNING: YOU USED ALL AVAILABLE FREE TRANSLATIONS FOR TODAY. NEXT AVAILABLE IN 15 HOURS 22 MINUTES 17 SECONDSVISIT HTTPS://MYMEMORY.TRANSLATED.NET/DOC/USAGELIMITS.PHP TO TRANSLATE MORE**
```python
from openpyxl import load_workbook
from translate import Translator
workbook = load_workbook(r'xxxx.xlsx')
sheet = workbook['Sheet1']
translator = Translator(to_lang='zh')
for row in range(2167, 3000):
key = sheet.cell(row=row, column=6).value
if len(key) > 500:
a = key[:500]
b = key[500:]
sheet.cell(row=row, column=7, value=translator.translate(a)+translator.translate(b))
else:
sheet.cell(row=row, column=7, value=translator.translate(key))
# print(translator.translate(key))
print(row)
workbook.save('xzxxx.xlsx')
print('翻译结束')
```
#### 三、百度翻译接口
**百度翻译接口免费版的可以的, 就是限制访问时间, 平均每秒访问一次, 数据量大的话, 速度稍微有点慢
当然你有富裕的可以开通豪华版**
**百度接口就不做过多介绍了, 百度翻译开放平台介绍的很详细:
[https://api.fanyi.baidu.com/](https://api.fanyi.baidu.com/)**
大佬如果有更好的方法,请多多赐教, 谢谢!
python自动翻译导学案_批量翻译踩过的坑--python相关推荐
- python自动翻译导学案_变量python学案
●掌握常用的关系和逻辑运算符 ●掌握 Python 中的变量及其赋值 ●数字化学习与...●学生任务二: 阅读学案,计算一下表达式的值,把结果填在学习网站上. 练习算术...... 初中八年级信息技术 ...
- 初识python导学案_高中数学 第三章 三角恒等变换 3_2_2 半角的正弦、余弦和正切学案 新人教b版必修4...
高中数学 第三章 三角恒等变换 3_2_2 半角的正弦.余弦和正切学案 新人教b版必修4 安全教育学习是提高员工安全防范意识的重要措施."百日安全活动"开展以来,保卫部从自身着手对 ...
- python初中可以学吗_初中学历零基础想转行Python,能否学会?Python难吗?
肯定的回答您:这个是一个技术工种学历不是很重要,完全能学会 其实,很多个程序员都是从不会到会,每种知识也是从基础到复杂,大家都是从零基础开始的,有的学员英语和数字基础也很差,从一点都不了解编码到现在非 ...
- python大一适合学吗_大一学生是否应该去学习Python?
首先介绍下我自己,我本科在一所普通一本院校读书,所学专业是机械电子工程.目前同时拿到了包括浙江大学.哈尔滨工业大学.西北工业大学等几所学校的offer,预计明年去西北工业大学读研究生. 1.争取在大一 ...
- python代码优化无限营销软件工作室_批量群发,营销必备!Python代码实现自动发送邮件!...
在运维开发中,使用 Python 发送邮件是一个非常常见的应用场景.今天一起来探讨一下,GitHub 的大牛门是如何使用 Python 封装发送邮件代码的. 一般发邮件方法 SMTP是发送邮件的协议, ...
- 上标3下标6算法_插入排序算法导学案
本文为"选考VB算法专题系列讲座9插入排序算法"视频配套的导学案,请同学们先完成导学案再收看视频.明天将推送"选考VB算法专题系列讲座9插入排序算法"视频,敬请 ...
- 4和2大于号小于号箭头那边_认识﹥﹤=(大于号、小于号和等号), 会用符号表示两个数的大小 导学案(青岛版一年级上册)...
2010至2011上学期一年级数学 教 师:石云霞 学习内容 第12页信息窗3. 学习目标 1.借助"拔河"的情境感受数量之间的大.小以及相等的关系.学会用一一对应的方法操作学具来 ...
- Python语言程序设计 第0周第1周 Python课程导学、基本语法元素
第0周 Python课程导学 线上线下相结合,手机电脑相结合,长短时间相结合 线上线下 线上看视频/做练习.线下读教材/看资料 手机电脑 视频/作业用手机.编程实践用电脑 长短时间 视频/作业用零碎时 ...
- 怎么算程序框图的计算机程序,算法与程序框图导学案
<算法与程序框图导学案>由会员分享,可在线阅读,更多相关<算法与程序框图导学案(9页珍藏版)>请在人人文库网上搜索. 1.算法与程序框图导学案1.1算法与程序框图一. 新知归纳 ...
最新文章
- AI 能匹敌程序员了吗?OpenAI 新研究展​示 NLP 大模型的局限性
- SAP PM 入门系列12 - IW32 下达一个维护订单
- 新论文推荐:Auto-Keras:自动搜索深度学习模型的网络架构和超参数
- oracle_j000,Process J000 died, kkjcre1p: unable to spawn jobq slave process引起的宕机
- argo 现水下永动机器人_现水下永动机器人 水下永动机器人有什么作用?
- 4键电子手表说明书_数字S1系统7寸门口主机操作说明书
- 思科交换机的初始配置(使用telnet登录)
- [转载] Linux进程基础
- Python使用tkinter打造自定义对话框完整代码
- STM32——库函数版——数码管动态显示程序
- 如何:从代码创建 UML 类图(ZZ)
- 2022最新高级java面试题
- 鲁棒控制 matlab程序,鲁棒控制的在matlab中的程序
- spark学习五——归属地计算案例
- 【C#语言】具名类型和匿名类型
- 计算机导航辅助教程,计算机导航辅助技术带给骨肿瘤外科医生的思考
- 一张收款码,同时支持微信、云闪付、支付宝、信用卡支付
- 【券后价9.90元】【包邮】荷叶茶冬瓜荷叶茶叶纯干玫瑰花茶袋泡花草茶包组合天然决明正品子...
- K-means均值聚类算法python代码实现
- openssl evp