Python实现微信翻译机器人的方法


Posted in Python onAugust 13, 2019

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

今天,利用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):
   req_url = 'http://fanyi.youdao.com/translate' # 创建连接接口
   # 创建要提交的数据
   Form_Date = {}
   Form_Date['i'] = content # 输入要翻译的内容
   Form_Date['doctype'] = 'json'
 
   data = parse.urlencode(Form_Date).encode('utf-8') # 数据转换
   response = request.urlopen(req_url, data) # 提交数据并解析
  html = response.read().decode('utf-8') # 服务器返回结果读取
  # 可以看出html是一个json格式
  translate_results = json.loads(html) # 以json格式载入
  translate_results = translate_results['translateResult'][0][0]['tgt'] # json格式调取
  print(translate_results) # 输出结果
  itchat.send(translate_results, toUserName=userName) #发送翻译结果

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

微信收发送消息

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

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

# 如果对方发的是文字,则我们给对方回复以下的东西
 @itchat.msg_register([TEXT])
 def text_reply(msg):
   match = re.search('翻译',msg['Text'])
   if match:
     content = msg['Text'][msg['Text'].find("+")+1:]
     translate(msg['FromUserName'], content)
itchat.auto_login()
itchat.run()

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

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

完整代码:

# 有道翻译结果获取
 '''
大致思路如下
 1.  创建连接接口
 
 2.  创建要提交的数据
 
.  将数据转化为服务器可以处理的信息并提交
.  返回翻译结果
'''
# 引入python中内置的包json. 用来解析和生成json数据的
import json
import itchat
import re
from itchat.content import *
from urllib import request, parse
def translate(userName, content):
  req_url = 'http://fanyi.youdao.com/translate' # 创建连接接口
  # 创建要提交的数据
  Form_Date = {}
  Form_Date['i'] = content # 输入要翻译的内容
  Form_Date['doctype'] = 'json'
  data = parse.urlencode(Form_Date).encode('utf-8') # 数据转换
  response = request.urlopen(req_url, data) # 提交数据并解析
  html = response.read().decode('utf-8') # 服务器返回结果读取
  # 可以看出html是一个json格式
  translate_results = json.loads(html) # 以json格式载入
  translate_results = translate_results['translateResult'][0][0]['tgt'] # json格式调取
  print(translate_results) # 输出结果
  itchat.send(translate_results, toUserName=userName) #发送翻译结果
# 如果对方发的是文字,则我们给对方回复以下的东西
@itchat.msg_register([TEXT])
def text_reply(msg):
  match = re.search('翻译',msg['Text'])
  if match:
    content = msg['Text'][msg['Text'].find("+")+1:]
    translate(msg['FromUserName'], content)
itchat.auto_login()
itchat.run()

总结

以上所述是小编给大家介绍的Python实现微信翻译机器人的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
在Python上基于Markov链生成伪随机文本的教程
Apr 17 Python
Python批量转换文件编码格式
May 17 Python
Python向日志输出中添加上下文信息
May 24 Python
使用Python的turtle模块画图的方法
Nov 15 Python
CentOS 7下安装Python3.6 及遇到的问题小结
Nov 08 Python
python实现对输入的密文加密
Mar 20 Python
python使用pandas处理大数据节省内存技巧(推荐)
May 05 Python
python数据类型可变不可变知识点总结
Mar 06 Python
如何利用Python matplotlib绘制雷达图
Dec 21 Python
Python lxml库的简单介绍及基本使用讲解
Dec 22 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
Jan 27 Python
Python3使用Selenium获取session和token方法详解
Feb 16 Python
python读写csv文件的方法
Aug 13 #Python
python根据多个文件名批量查找文件
Aug 13 #Python
详解django实现自定义manage命令的扩展
Aug 13 #Python
Python一键安装全部依赖包的方法
Aug 12 #Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
Aug 12 #Python
浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)
Aug 12 #Python
基于Python2、Python3中reload()的不同用法介绍
Aug 12 #Python
You might like
PHP中英混合字符串截取函数代码
2011/07/17 PHP
PHP 第三节 变量介绍
2012/04/28 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
2015/05/12 PHP
JavaScript 页面编码与浏览器类型判断代码
2010/06/03 Javascript
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
JavaScript 处理Iframe自适应高度(同或不同域名下)
2013/03/29 Javascript
jquery表格内容筛选实现思路及代码
2013/04/16 Javascript
可自己添加html的伪弹出框实现代码
2013/09/08 Javascript
原生JS可拖动弹窗效果实例代码
2013/11/09 Javascript
简介JavaScript中toTimeString()方法的使用
2015/06/12 Javascript
JavaScript中的继承之类继承
2016/05/01 Javascript
原生js实现节日时间倒计时功能
2017/01/18 Javascript
详解vue-cli项目中用json-sever搭建mock服务器
2017/11/02 Javascript
在react-router4中进行代码拆分的方法(基于webpack)
2018/03/08 Javascript
小程序实现订单倒计时功能
2019/04/23 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
2019/08/22 Javascript
layui使用form表单实现post请求页面跳转的方法
2019/09/14 Javascript
实现vuex与组件data之间的数据同步更新方式
2019/11/12 Javascript
vue 点击其他区域关闭自定义div操作
2020/07/17 Javascript
Python操作MySQL模拟银行转账
2018/03/12 Python
Python面向对象实现一个对象调用另一个对象操作示例
2019/04/08 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
2020/04/03 Python
flask框架中的cookie和session使用
2021/01/31 Python
STAY JAPAN台湾:预订日本民宿
2018/07/22 全球购物
采购人员的个人自我评价
2014/01/16 职场文书
《闻一多先生的说和做》教学反思
2014/04/28 职场文书
环境科学专业教师求职信
2014/07/12 职场文书
党委班子剖析材料
2014/08/21 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
小学生国庆65周年演讲稿范文(2篇)
2014/09/21 职场文书
2014年乡镇民政工作总结
2014/12/02 职场文书
2016年党员公开承诺书范文
2016/03/24 职场文书
《钢铁是怎样炼成的》高中读后感
2019/08/07 职场文书
导游词之太行山青龙峡
2020/01/14 职场文书
redis客户端实现高可用读写分离的方式详解
2021/07/04 Redis
vue3不同环境下实现配置代理
2022/05/25 Vue.js