from urllib import parse,request

import requests,re,execjs,json,time

英语查词翻译

class Tencent():

def init(self):

self.api_url = 'https://fanyi.qq.com/api/translate'

self.headers = {

'Cookie': 'fy_guid=605ead81-f210-47eb-bd80-ac6ae5e7a2d8; '

'qtv=ed286a053ae88763; '

'qtk=wfMmjh3k/7Sr2xVNg/LtITgPRlnvGWBzP9a4FN0dn9PE7L5jDYiYJnW03MJLRUGHEFNCRhTfrp/V+wUj0dun1KkKNUUmS86A/wGVf6ydzhwboelTOs0hfHuF0ndtSoX+N3486tUMlm62VU4i856mqw; ',

'Host': 'fanyi.qq.com',

'Origin': 'https://fanyi.qq.com',

'Referer': 'https://fanyi.qq.com/',

'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, '

'like Gecko) Chrome/73.0.3683.86 Safari/537.36', }

self.fromlang = 'auto'

self.text=''

self.tolang = 'en' # 设置默认为英语

self.sessionUuid = str(int(time.time() * 1000))

self.fy_guid, self.qtv, self.qtk = self.get_qtv_qtk()

self.headers['Cookie'] = self.headers['Cookie'].replace(

'605ead81-f210-47eb-bd80-ac6ae5e7a2d8', self.fy_guid)

self.headers['Cookie'] = self.headers['Cookie'].replace(

'ed286a053ae88763', self.qtv)

self.headers['Cookie'] = self.headers['Cookie'].replace(

'wfMmjh3k/7Sr2xVNg/LtITgPRlnvGWBzP9a4FN0dn9PE7L5jDYiYJnW03MJLRUGHEFNCRhTfrp/V+wUj0dun1KkKNUUmS86A/wGVf6ydzhwboelTOs0hfHuF0ndtSoX+N3486tUMlm62VU4i856mqw',

self.qtk)

def get_filter(self,text):

if isinstance(text, list):

text = ''.join(text)

text = str(text)

text = text.strip()

filter_list = [

'\r', '\n', '', '\u3000', '\xa0', '\u2002',

'
', '
', ' ', ' ', ' ', '>>', '"',

'展开全部', ' '

]

for fl in filter_list:

text = text.replace(fl, '')

return text

def get_qtv_qtk(self):

api_url = 'https://fanyi.qq.com/'

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, '

'like Gecko) Chrome/73.0.3683.86 Safari/537.36', }

res = requests.get(api_url, headers=headers)

data = res.text

fy_guid = res.cookies.get('fy_guid')

reg = re.compile(r'var qtv = "(.?)"')

qtv = reg.search(data).group(1)

reg = re.compile(r'var qtk = "(.
?)"')

qtk = reg.search(data).group(1)

return fy_guid, qtv, qtk

def getHtml(self,url,headers,data):

try:

html= requests.post(url=url,data= data,headers=headers)

#print(html.text)

datas = html.json()['translate']['records']

if html!=None and datas != None :

# 以文本的形式打印结果

trans_result = ''.join([data['targetText'] for data in datas])

return trans_result

except Exception:

return None

def translate(self,text):

data = {

'source': self.fromlang,

'target': self.tolang,

'sourceText': text,

'qtv': self.qtv,

'qtk': self.qtk,

'sessionUuid': self.sessionUuid, }

try:

result = self.getHtml(self.api_url,self.headers,data)

return result

except:

return '程序出现了一点小问题,无法翻译'

class English():

def init(self):

self.search()

#查询单词

def search(self):

baseurl = "https://fanyi.baidu.com/sug"

while True:

flag = 0

print("请输入:")

content = input()

if content == '':

break

for char in content:

if(re.search(r"\W",char)):

result = Tencent().translate(content)

flag = 1

break

elif(len(content)>3):

result = Tencent().translate(content)

flag = 1

break

if(flag==0):

# 我们需要传送过去的数据

datas = {

'kw': content

}

# 对数据进行编码

data = parse.urlencode(datas).encode()

# 写http头部,至少需要Content-Length

headers = {

# 此处为编码后的长度

'Content-Length': len(data),

}

# 将数据传送

req = request.Request(url=baseurl, data=data, headers=headers)

res = request.urlopen(req)

json_data = res.read()

json_data = json_data.decode()

json_data = json.loads(json_data)

# data里面是一个list

data_list = json_data.get('data')

if(data_list):

item = data_list[0]

result = item['k']+' --- '+item['v']

else:

result = Tencent().translate(content)

print('查询结果:')

print(result)

output = ''

for char in result:

if(u'\u4e00' <= char and char <= u'\u9fff'):

output = output + '**'

else:

output = output + '*'

print(output)

if name == 'main':

English()

python制作一个小型翻译软件的更多相关文章

  1. 用 Python 制作一个艺术签名小工具,给自己设计一个优雅的签名

    生活中有很多场景都需要我们签字(签名),如果是一些不重要的场景,我们的签名好坏基本无所谓了,但如果是一些比较重要的场景,如果我们的签名比较差的话,就有可能给别人留下不太好的印象了,俗话说字如其人嘛,本 ...

  2. iOS学习——制作一个小型加法计算器

    一.项目要求:制作一个加法计算器.在第1个和第2个文本框中输入两个整数,然后点击“计算”按钮,可将计算结果显示在第3个文本框中. 二.开发步骤: 1.搭建UI界面 2.监听按钮的点击事件 3.获取文本 ...

  3. 利用Python制作一个只属于和她的聊天器,再也不用担心隐私泄露啦!

    ------------恢复内容开始------------ 是否担心微信的数据流会被监视?是否担心你和ta聊天的小秘密会被保存到某个数据库里?没关系,现在我们可以用Python做一个只属于你和ta的 ...

  4. python制作一个简单的中奖系统

    注释: 展示图下的代码,我是用pycharm写的,是python解释器中的一种,本课没不同解释器的要求,可根据自己喜欢的解释器编写. 步骤: 本期给大家带来的是,一个简单的中奖系统,首先打开自己电脑上 ...

  5. python制作一个简单词云

    首先需要安装三个包:# 安装:pip install matplotlib# 安装:pip install jieba# 安装pip install wordcloud 1.制作英文字母的词云 效果图 ...

  6. 3分钟教你用python制作一个简单词云

    首先需要安装三个包: # 安装:pip install matplotlib # 安装:pip install jieba # 安装pip install wordcloud 1.制作英文字母的词云 ...

  7. 使用Python制作一个简单的刷博器

    呵呵,不得不佩服Python的强大,寥寥几句代码就能做一个简单的刷博器. import webbrowser as web import time import os count=0 while co ...

  8. Python学习之旅:用Python制作一个打字训练小工具

    一.写在前面 说道程序员,你会想到什么呢?有人认为程序员象征着高薪,有人认为程序员都是死肥宅,还有人想到的则是996和 ICU. 别人眼中的程序员:飞快的敲击键盘.酷炫的切换屏幕.各种看不懂的字符代码 ...

  9. 使用canvas通过js制作一个小型英雄抓怪兽的2D小游戏

    首先,这是一个HTML: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

随机推荐

  1. 字节跳动基于ClickHouse优化实践之“多表关联查询”

    更多技术交流.求职机会.试用福利,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 相信大家都对大名鼎鼎的ClickHouse有一定的了解了,它强大的数据分析性能让人印象深刻.但在字节大量 ...

  2. Python入门系列(六)一篇学会python函数

    函数 函数是只在调用时运行的代码块. def my_function(): print("Hello from a function") my_function() 信息可以作为参 ...

  3. 第五十五篇:Axios的封装

    好家伙, 上图 1.为什么需要封装axios? 当我们改变项目的使用环境时候,url也会随之改变,那么我们就需要改很多axios请求中的url配置 现在我们将axios封装,在项目使用环境改变时我们只 ...

  4. x64dbg 插件开发环境配置

    x64dbg 是一款开源的应用层反汇编调试器,旨在对没有源代码的可执行文件进行恶意软件分析和逆向工程,同时 x64dbg 还允许用户开发插件来扩展功能,插件开发环境的配置非常简单,如下将简单介绍x64 ...

  5. KingbaseES集群管理维护案例之---备库checkpoint分析

    ​ 数据库异常关闭时,数据库关闭时来不及或者没机会做checkpoint,则需要从上一个一致性检查的开始恢复.KingbaseES备机checkpoint是不能产生checkpoint WAL日志条目 ...

  6. KingbaseES 数据库参数优化

    一.数据库应用类型 针对不同的应用模型,需要对数据库配置进行优化: 1.网络应用程序(WEB) ​通常受 CPU 限制 DB比RAM小得多 90% 或更多的简单查询 2.在线事务处理 (OLTP) ​ ...

  7. KingbaseES R3 集群修改system用户密码方案

    方案说明: 对于kingbaseES R3集群修改system密码相比单机环境有一定的复杂性,需要修改的位置如下: 1)数据库中system用户密码,可以用alter user命令修改 2)在reco ...

  8. aardio 编程语言快速入门 —— 语法速览

    本文仅供有编程基础的用户快速了解常用语法.如果『没有编程基础』 ,那么您可以通过学习任何一门编程语言去弥补你的编程基础,不同编程语言虽然语法不同 -- 编程基础与经验都是可以互通的.我经常看到一些新手 ...

  9. 对于Java中权限修饰符的理解

    老是把Java中权限修饰符给忘记,写一个博客加深印象吧 权限分为四个作用域:当前类,同一个包,其他包的子类,其他包的类. 首先要知道包的概念,Java中一个包是指一个package下的所有文件. pr ...

  10. vscode常用快捷键及插件

    macOS 全局 Command + Shift + P / F1 显示命令面板 Command + P 快速打开 Command + Shift + N 打开新窗口 Command + W 关闭窗口 ...