关于python全自动翻译遇到的问题
Translent思路
- 通过selenium获取cookies
- 使用cookies访问并且爬取需要翻译的字符存储在一个列表里
- 将列表的的字符串通过有道翻译逐个翻译成中文并返回存储在另一列表里
- 提取翻译后的中文字符串传入站点后台中文选项框里,对里面的英文进行替换并保存
思路有了开始做
登陆需要的东西
- 账号:admin
- 密码:123456
获取cookies——fileName = loginAdmin.py
from selenium import webdriver
import time
from requests.cookies import RequestsCookieJar
def To_admin():
'''访问'''
url = 'http://test.iscrooge.cn'
dr = webdriver.Chrome()
dr.get(url)
'''登陆'''
dr.find_element_by_css_selector('#username').send_keys('admin')
dr.find_element_by_css_selector('#password').send_keys('123456')
dr.find_element_by_css_selector('#login > div.login_signup_combo > div.login__ > button').click()
time.sleep(1)
'''返回cookies'''
cookie_list = dr.get_cookies()
cookies = RequestsCookieJar()
for cookie in cookie_list:
cookies.set(cookie['name'],cookie['value'])
return cookies
清洗保存需要翻译的英文字符——fileName = getEngWords.py
from login_admin import To_admin
import requests
import re
def getVALUE():
'''通过'cookies访问'''
cookies = To_admin()
words = []
for i in range(20):
value_list = []
url = 'http://test.iscrooge.cn/admin-cp/edit-lang?id=chinese&page-id={}'.format(i+2)
req = requests.get(url=url,cookies=cookies).text
'''爬取VALUE值'''
pat = '<button type="button" class="btn btn-default waves-effect btn-lang m-r-20" data-id="(.*?)" data-toggle="modal" data-target="#defaultModal">EDIT</button>'
values = re.findall(pat,req)
#将value值中的下划线替换并且加入到words[]列表中
for x in values:
word = x.replace('_',' ')
words.append(word)
return words
感谢 @Jason990420 提供的有道api——fileName = youDaoApi.py
import requests
import json
def youDaoApi(word):
url = 'http://fanyi.youdao.com/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"
}
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36'
}
# key 这个字典为发送给有道词典服务器的内容
response = requests.post(url, data=key, headers=headers)
# 判断服务器是否相应成功
if response.status_code == 200:
# 然后相应的结果
result = json.loads(response.text)
return result['translateResult'][0][0]['tgt']
else:
print("有道词典调用失败")
# 相应失败就返回空
return None
将翻译后的中文存储在列表里方便使用——fileName = startTranslent.py
from translent_words import getVALUE
from youDaoApi import youDaoApi
from threading import Thread
'''翻译并且保存翻译后的字符'''
def translent_and_save():
chinese_words = [] #创建一个空列表用于存储翻译后的字符
words_list = getVALUE()
'''遍历所有英文并且翻译'''
for i in words_list:
chinese = youDaoApi(i)
chinese_words.append(chinese)
return chinese_words #返回翻译后的中文
推荐文章: