使用python实现的pdf翻译脚本

import PyPDF2
import requests
import json 
from hashlib import md5
import random
import re
import time
ori_lan='en'
to_lan='zh'
ori_url='http://api.fanyi.baidu.com'
path='/api/trans/vip/translate'
url=ori_url+path
appid = 'your_appid'  # 替换为你在百度翻译开放平台申请的应用ID
appkey = 'your_keyid'  # 替换为你在百度翻译开放平台申请的密钥
def get_pdf_text(path):
    reader=PyPDF2.PdfReader(path)
    text_page=[]
    title=reader.metadata.title
    for id,i in enumerate(reader.pages):
        text_page.append(i.extract_text())
    return [title,text_page]
def make_sign_by_md5(s,encoding='utf-8'):
    return md5(s.encode(encoding)).hexdigest()#得到转化后的哈希值并且转化为十六进制的字符串
def translate(text:str):
    text=text.strip(' ')
    if(text==''):
        return ''
    print(text)
    salt=random.randint(32768,65536)
    sign=make_sign_by_md5(appid+text+str(salt)+appkey)
    headers={'Content-Type':'application/x-www-form-urlencoded'}
    payload={'appid':appid,'q':text,'from':ori_lan,'to':to_lan,'salt':salt,'sign':sign}
    r=requests.post(url,params=payload,headers=headers)
    print(r.text)
    result=r.json()
    return result['trans_result'][0]['dst']
def remove_special_symbols(text):
    text = re.sub(r'[^\w\s]', '', text)
    text = re.sub(r'<img.*?>', '', text)
    return text
text_set=[i.replace("\n",'') for i in get_pdf_text('test.pdf')[1]]
for i in range(0,len(text_set)):
    text_set[i]=remove_special_symbols(text_set[i])
print(text_set)
trans_text=[]
i=0
for text in text_set:
    print(i)
    i+=1
    trans_text.append(translate(text))
    time.sleep(1)
with open('test.txt','w')as f:
    for i in range(0,len(text_set)):
        f.write(trans_text[i]+'\n')
    f.close()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值