新增百度翻译脚本
This commit is contained in:
88
python/translate_baidu.py
Normal file
88
python/translate_baidu.py
Normal file
@@ -0,0 +1,88 @@
|
||||
import random
|
||||
import hashlib
|
||||
import requests
|
||||
import time
|
||||
|
||||
|
||||
def baidu_translate(word):
|
||||
api_url = 'http://api.fanyi.baidu.com/api/trans/vip/translate'
|
||||
# 百度翻译appid
|
||||
# appid = '20230629001728201'
|
||||
# # api的密码
|
||||
# secretKey = 'mTOyai8ueVnmkdZ3atRj'
|
||||
appid = '20230607001703210'
|
||||
secretKey = 'neGN1Q7ZLi1TLSM4YIpM'
|
||||
salt = random.randint(32768, 65536)
|
||||
str1 = (appid + word + str(salt) + secretKey)
|
||||
md = hashlib.md5()
|
||||
md.update(str1.encode('utf-8'))
|
||||
sign = md.hexdigest()
|
||||
# 可以设置翻译的语言
|
||||
api_data = {
|
||||
'q': word,
|
||||
'from': 'cht',
|
||||
'to': 'en',
|
||||
'appid': appid,
|
||||
'salt': salt,
|
||||
'sign': sign
|
||||
}
|
||||
req_get = requests.get(api_url, api_data)
|
||||
# 结果的位置可能不同
|
||||
result_json = req_get.json()
|
||||
result: str = ''
|
||||
if 'trans_result' in result_json:
|
||||
result = result_json['trans_result'][0]['dst']
|
||||
return result
|
||||
|
||||
|
||||
def spider(filepath, suffix):
|
||||
import os
|
||||
code_files = []
|
||||
for root, dirs, files in os.walk(filepath, topdown=False):
|
||||
for f in files:
|
||||
file = os.path.join(root, f)
|
||||
if file.endswith(suffix):
|
||||
code_files.append(file.replace("\\", "/"))
|
||||
return code_files
|
||||
|
||||
|
||||
def message(code_files):
|
||||
msgs = []
|
||||
for i in code_files:
|
||||
fp = open(i, 'r', encoding='utf-8')
|
||||
data = fp.readlines()
|
||||
for line in data:
|
||||
curr_code = line.strip('\n')
|
||||
if curr_code is None:
|
||||
curr_code = line.strip('\r\n')
|
||||
msgs.append(curr_code)
|
||||
return msgs
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
code_files = spider('/Users/liaozetao/Downloads/message', '.txt')
|
||||
msgs = message(code_files)
|
||||
for m in msgs:
|
||||
while True:
|
||||
try:
|
||||
if len(m) == 0:
|
||||
continue
|
||||
arr = m.split(', ')
|
||||
str1: str = ''
|
||||
if len(arr) > 0:
|
||||
str1 = arr[0]
|
||||
str2: str = ''
|
||||
if len(arr) > 1:
|
||||
str2 = arr[1]
|
||||
if len(str2) == 0:
|
||||
continue
|
||||
else:
|
||||
str2 = str2.split(')')[0]
|
||||
str2 = str2.replace('"', '')
|
||||
content = baidu_translate(str2)
|
||||
print(str1, ', "', content, '"),')
|
||||
time.sleep(1)
|
||||
break
|
||||
except Exception as e:
|
||||
print(e)
|
||||
continue
|
86
python/translate_fanyigou.py
Normal file
86
python/translate_fanyigou.py
Normal file
@@ -0,0 +1,86 @@
|
||||
import hashlib
|
||||
import time
|
||||
|
||||
|
||||
# -*- coding: utf-8 -*-
|
||||
def tranlate(source):
|
||||
import requests
|
||||
import json
|
||||
url = "https://www.fanyigou.com/TranslateApi/api/trans"
|
||||
content = 'appid=1709180548417&from=cht&from=cht&nonce_str=ibuaiVcKdpRxkhJA&privatekey=2c46cc266d4909a6a30527f93c424f186d5ba90e&text=' + source + '&to=en'
|
||||
print(content)
|
||||
token = md5_encrypt(content).upper()
|
||||
print(token)
|
||||
response = requests.request("POST", url, data={
|
||||
'appid': '1709180548417',
|
||||
'token': token,
|
||||
'nonce_str': 'ibuaiVcKdpRxkhJA',
|
||||
'from': 'cht',
|
||||
'text': source,
|
||||
'to': 'en',
|
||||
})
|
||||
print(response.text)
|
||||
return json.loads(response.text)['data']
|
||||
|
||||
|
||||
def md5_encrypt(text):
|
||||
# 创建一个MD5对象
|
||||
md5 = hashlib.md5()
|
||||
# 将文本转换为字节类型并更新到MD5对象中
|
||||
md5.update(text.encode('utf-8'))
|
||||
# 获取加密后的结果(16位十六进制表示)
|
||||
encrypted_result = md5.hexdigest()
|
||||
return encrypted_result
|
||||
|
||||
|
||||
def spider(filepath, suffix):
|
||||
import os
|
||||
code_files = []
|
||||
for root, dirs, files in os.walk(filepath, topdown=False):
|
||||
for f in files:
|
||||
file = os.path.join(root, f)
|
||||
if file.endswith(suffix):
|
||||
code_files.append(file.replace("\\", "/"))
|
||||
return code_files
|
||||
|
||||
|
||||
def message(code_files):
|
||||
msgs = []
|
||||
for i in code_files:
|
||||
fp = open(i, 'r', encoding='utf-8')
|
||||
data = fp.readlines()
|
||||
for line in data:
|
||||
curr_code = line.strip('\n')
|
||||
if curr_code is None:
|
||||
curr_code = line.strip('\r\n')
|
||||
msgs.append(curr_code)
|
||||
return msgs
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
code_files = spider('/Users/liaozetao/Downloads/message', '.txt')
|
||||
msgs = message(code_files)
|
||||
for m in msgs:
|
||||
try:
|
||||
print(m)
|
||||
if len(m) == 0:
|
||||
continue
|
||||
arr = m.split(', ')
|
||||
str1: str = ''
|
||||
if len(arr) > 0:
|
||||
str1 = arr[0]
|
||||
str2: str = ''
|
||||
if len(arr) > 1:
|
||||
str2 = arr[1]
|
||||
if len(str2) == 0:
|
||||
continue
|
||||
else:
|
||||
str2 = str2.split(')')[0]
|
||||
str2 = str2.replace('"', '')
|
||||
content = tranlate(str2)
|
||||
print(str1, ',', content)
|
||||
time.sleep(1)
|
||||
break
|
||||
except Exception as e:
|
||||
print(e)
|
||||
continue
|
Reference in New Issue
Block a user