python实现离线翻译_10分钟教你用Python实现微信翻译机器人

相信大家在日常学习或者是阅读英文文章的过程中,难免会出现几个不认识的单词,或者想快速翻译某段英文的意思。

今天,利用Python爬虫等知识,教大家打造一个微信下的翻译小助手。好吧,开始干活。

先来看看效果如何

发送要翻译的内容给我们的翻译小助手,它会自动回复翻译好的内容。

环境配置:

Python版本:3.6.0

系统平台:Windows 10 X64

IDE:pycharm

相关模块:

json模块

itchat模块

re模块

request模块

parse模块

以及一些Python自带的模块。

根据内容获取翻译的结果

这里使用的是有道翻译API接口。大致思路说一下:

1. 创建连接接口

2. 创建要提交的数据

3. 将数据转化为服务器可以处理的信息并提交

4. 返回翻译结果

这部分功能我们封装成一个函数,参数是需要发送的微信用户名,需要翻译的内容。

数据格式我们是以json的格式发送过去的,然后获取的也是json的数据格式,该过程需要做些转换。

还需要把数据转换成utf-8的编码,回来的数据也需要做相应的转换和解析,具体看下面代码:

def translate(userName, content):

'http://fanyi.youdao.com/translate'  # 创建连接接口

# 创建要提交的数据

'i'] = content  # 输入要翻译的内容

'doctype'] = 'json'

'utf-8')  # 数据转换

# 提交数据并解析

'utf-8')  # 服务器返回结果读取

# 可以看出html是一个json格式

# 以json格式载入

'translateResult'][0][0]['tgt']  # json格式调取

# 输出结果

#发送翻译结果

不了解的同学在仔细看看代码注释。

微信收发送消息

关于微信收发送消息呢,可以看看之前Python打造天气预报机器这一篇文章,代码是直接从那边稍加修改搬过来的。

那边是获取天气,这边是获取翻译结果,思路都是一样的。直接看代码就可以了:

# 如果对方发的是文字,则我们给对方回复以下的东西

@itchat.msg_register([TEXT])

def text_reply(msg):

'翻译',msg['Text'])

if match:

'Text'][msg['Text'].find("+")+1:]

'FromUserName'], content)

我们需要对消息进行匹配分析,以便确定用户需要的是翻译功能而不是天气预报等功能,所以需要利用re进行匹配一下关键字。

然后调用translate函数进行获取发送。

完整代码:

# 有道翻译结果获取

'''

# 引入python中内置的包json. 用来解析和生成json数据的

import json

import itchat

import re

from itchat.content import *

from urllib import request, parse

def translate(userName, content):

'http://fanyi.youdao.com/translate'  # 创建连接接口

# 创建要提交的数据

'i'] = content  # 输入要翻译的内容

'doctype'] = 'json'

'utf-8')  # 数据转换

# 提交数据并解析

'utf-8')  # 服务器返回结果读取

# 可以看出html是一个json格式

# 以json格式载入

'translateResult'][0][0]['tgt']  # json格式调取

# 输出结果

#发送翻译结果

# 如果对方发的是文字,则我们给对方回复以下的东西

@itchat.msg_register([TEXT])

def text_reply(msg):

'翻译',msg['Text'])

if match:

'Text'][msg['Text'].find("+")+1:]

'FromUserName'], content)

注:代码文件的获取请移步留言区。

好了,今天的分享就到这里,喜欢的话记得分享和转发哦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410203.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# 字符、字符串过滤,只能输入数字、中文、英文、大写、小写(转)

private void TextBox1_KeyPress(object sender, KeyPressEventArgs e) //文本框输入字符过滤 { if (Convert.ToInt32(e.KeyChar) > 48 && Convert.ToInt32(e.KeyChar) < 58 || //包括数字 //(Convert…

[html] 你知道<a>标签的target属性规定在何处打开链接文档吗?

[html] 你知道标签的target属性规定在何处打开链接文档吗&#xff1f; _self 自身打开&#xff0c;效果即跳转_blank 新开标签页打开_parent 父_top 顶级我们常用的恐怕一般只有2种&#xff0c;_blank,_self另外有个细节是为什么链接是a标签&#xff0c;而不是b,c呢&#xff0c…

lombok依赖_为什么有些公司不让用 Lombok ?不要问,自己看吧

来源&#xff1a;toutiao.com/i6820517160964588044如果您正在阅读此文&#xff0c;想必您对Project Lombok已经有了一段时间的了解。您是否正准备拥抱Lombok?还是正准备将如此酷炫的项目推荐给你的团队&#xff1f;如果您准备那么做&#xff0c;不妨听听我在使用Lombok一年后…

Solaris10 JumpStart服务器配置

1. 创建JumpStart安装服务器 创建安装目录 mkdir -p /jumpstart/Solaris10U10_SPARC/install 创建install server cd /cdrom/sol_10_811_sparc/Solaris_10/Tools ./setup_install_server /jumpstart/Solaris10U10_SPARC/install 2. 创建client配置文件 创建配置文件目录 mkdir …

写入文件

string strPath Server.MapPath("../NumberLog.txt"); FileStream fs new FileStream(strPath, FileMode.Append); StreamWriter sw new StreamWriter(fs); //开始写入 sw.Write(string " \r\n…

ocx控件 postmessage消息会消失_实战经验:如何检测CMFCTabCtrl控件标签页切换事件...

MFC库中经常会使用到的一个控件是Tab标签页控件&#xff0c;这个控件在展现多个平级数据集非常合适。与控件对应的&#xff0c;是MFC库中的两个类&#xff1a;CMFCTabCtrl和CMFCBaseTabCtrl&#xff0c;其中CMFCTabCtrl继承自CMFCBaseTabCtrl&#xff0c;而CMFCBaseTabCtrl又继…

研究生生活总结(2):从技术到研究再到技术的过程

前几天写了关于研究生当助教的那些事&#xff0c;今天来说说本科和研究生期间在技术和学术上的感受。其实这个题目有点伪&#xff0c;因为其中介绍了大量的本科时的东西。 大学之前&#xff0c;对电脑的认识很少&#xff0c;初中和高中微机课接触了一点&#xff0c;去过几次网吧…

c++ 用eclipse建立一个类,并实例化并运行

新建项目file->new->c/c project 项目结构cpc.cpp// // Name : cpc.cpp // Author : cpc // Version : // Copyright : Your copyright notice // Description : Hello World in C, Ansi-style //#include <iostream> #include "mycoach.h&…

[html] 你是如何理解html与css分离的?

[html] 你是如何理解html与css分离的&#xff1f; 我粗浅的理解是 降低代码的亢余和复杂性 各分其事 便于编写和维护个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试…

ps制作20种特效文字_用PS制作裂、火、电特效——电

本例是关于人物的电特效。包含的技术点比较多&#xff0c;其中最重要的技术是质感合成技术与变形技术。案例步骤&#xff08;1&#xff09;按CtrlN组合键新建一个19491417像素的文档。然后新建一个图层&#xff0c;接着打开渐变编辑器&#xff0c;设置第一个颜色的色标为&#…

JQuery放大镜效果

在网上找了些实现放大镜效果的方法&#xff0c;感觉这个方法符合我的要求就摘过来了&#xff0c;非原创 在一些电子商务或商品展示网上&#xff0c;为了更好的显示商品&#xff0c;一般都会添加放大镜的效果。 如图&#xff1a;&#xff08;当把鼠标放到小图片上&#xff0c;右…

echarts轨迹图,各个城市线路图轨迹如何取值

ehcarts官网网站给的是北京交通线路图https://www.echartsjs.com/examples/editor.html?clines-bmap-effect&#xff0c;这里其实有误区。 在开发项目的时候&#xff0c;我一直以为将某一路公交车的每个站点的坐标&#xff08;经纬度&#xff09;&#xff0c;放到series中的da…

如何查看电脑显卡配置_组装电脑:电脑配置显卡推荐

重点提醒&#xff1a;最新3000显卡上市&#xff0c;以下内容在发布之后会更新。现在不要着急购买2060系列的显卡。 今年显卡价格在大量矿卡的冲击下&#xff0c;价格普遍下滑&#xff0c;老黄家的1000系列也升级到1600系列&#xff0c;而AMD的扛把子蓝宝石RX580 8G价格更是一路…

智能优化算法应用:基于蛇优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于蛇优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于蛇优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蛇优化算法4.实验参数设定5.算法结果6.参考文…

python网络编程知识点_python 网络编程要点

From http://www.zhihu.com/question/19854853Python网络编程是一个很大的范畴&#xff0c;个人感觉需要掌握的点有&#xff1a;1. 如何使用Python来创建socket, 如何将socket与指定的IP地址和端口进行绑定&#xff0c;使用socket来发送数据&#xff0c;接受数据&#xff0c;2.…

J2EE技术(三)——JMS

一、JMS基本思想 JMS&#xff08;Java Message Service&#xff09;即java消息服务&#xff0c;提供了一组标准的java API&#xff0c;用于企业级的消息处理。通过JMS可以在java程序之间发送和接受消息以达到交换数据的目的。 一个JMS应用由以下几部分组成&#xff1a; 1、 …

ssh-keygen -t rsa执行后提示没有权限

ssh-keygen -t rsa生成密钥文件和私钥文件 产生原因&#xff1a;ssh-keygen命令不是被识别的内部或者外部命令&#xff0c;没有权限 解决方案&#xff1a;把这个命令加入到全局变量内&#xff0c;再执行&#xff0c;就OK了 1.找到git安装目录下ssh-keygen地址&#xff1a; 2.把…

windows安全警报怎么关闭_鄂州人注意!本周五上午,全市将进行防空警报鸣放...

根据《人民防空法》规定&#xff0c;经鄂州市政府批准&#xff0c;于2020年10月23日上午9时10分进行防空警报鸣放&#xff0c;届时请市民不要惊慌&#xff0c;保持正常的工作和生活秩序。■延伸若是战时防空警报响起&#xff0c;市民该怎么做&#xff1f;如今是和平年代&#x…

dialog

http://www.eoeandroid.com/forum.php?modviewthread&tid84871 1.确定取消对话框 对话框中有2个按钮 通过调用 setPositiveButton 方法 和 setNegativeButton 方法 可以设置按钮的显示内容以及按钮的监听事件。 我们使用AlerDialog 创建对话框 AlertDialog.Builder buil…