Python实现英文课件翻译中文
由于英语实在太渣渣,考试却要用英文课件,磕磕巴巴的写了一个Python的小程序,将PPT翻译成中英对照。
采用了request模拟有道翻译移动版访问请求(百度存在反爬虫,第一次使用没有搞定,有道的中译英的反爬虫比较容易解决),调用python-pptx对PPT进行操作。
Python实现翻译的功能CSDN很多资源,不过现在百度的反爬虫的问题没有看到解决的方法。
python-pptx参考官网https://python-pptx.readthedocs.io/en/latest/index.html
@requires_authorization
from pptx import Presentation
from pptx.enum.text import MSO_ANCHOR, MSO_AUTO_SIZE
from urllib import request, parse
import json
import time
def translate(search):
# 源地址http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule
# 如果不把_o去掉会被产生errorcode:50,去掉后只能进行英译汉
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
headers = {"user-agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Mobile Safari/537.36"}
posData = {
"i": search,
"from": "en",
"to": "zh-CHS",
"smartresult": "dict",
"client": "fanyideskweb",
"salt": "15613392208262",
"sign": "fb6fa92251d9bf98c31e7f9b5285869e",
"ts": "1561339220826",
"bv": "62188471f020213764ab67d1893204f7",
"doctype": "json",
"version": "2.1",
"keyfrom": "fanyi.web",
"action": "FY_BY_CLICKBUTTION"
}
data = parse.urlencode(posData).encode('utf-8')
response = request.urlopen(url, data)
html = response.read().decode('utf-8')
translateResults = json.loads(html)
translateResults = translateResults['translateResult'][0][0]
time.sleep(5)
return translateResults
prs = Presentation("C:\\Users\\82356\\Desktop\\新建 Microsoft PowerPoint 演示文稿.pptx")
# text_runs will be populated with a list of strings, one for each text run in presentation
text_runs = []
for slide in prs.slides:
for shape in slide.shapes:
if not shape.has_text_frame:
continue
for paragraph in shape.text_frame.paragraphs:
s = ''
st = []
paragraph.bold = False
tf = shape.text_frame
# tf.auto_size = MSO_AUTO_SIZE.TEXT_TO_FIT_SHAPE
for run in paragraph.runs:
s += run.text
if not s.isupper():
p = tf.add_paragraph()
p.text = translate(s)['tgt']
prs.save('nex.pptx')
for text_run in text_runs:
print(text_run)
m0_74900858: 大神有教程吗好需要
Charles Shan: 好家伙,昨天看了这个帖子,今天毕设选题就选了物联网,冥冥之中自有天意
weixin_43249938 回复 程序员一飞: 水论文,,做实验了
程序员一飞: 继续更新呀
程序员一飞: 哈哈,这个实用