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实现二维码扫码自动登录淘宝
Dec 27 Python
详解 Python 读写XML文件的实例
Aug 02 Python
深入浅出学习python装饰器
Sep 29 Python
rabbitmq(中间消息代理)在python中的使用详解
Dec 14 Python
TensorFlow如何实现反向传播
Feb 06 Python
python 获取url中的参数列表实例
Dec 18 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
Aug 08 Python
详解Python利用random生成一个列表内的随机数
Aug 21 Python
Python帮你识破双11的套路
Nov 11 Python
pytorch 中的重要模块化接口nn.Module的使用
Apr 02 Python
python实现简单遗传算法
Sep 18 Python
如何在python中实现ECDSA你知道吗
Nov 23 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
IIS6的PHP最佳配置方法
2007/03/19 PHP
PHP实现的memcache环形队列类实例
2015/07/28 PHP
php自定义函数实现统计中文字符串长度的方法小结
2017/04/15 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
基于PHP实现发微博动态代码实例
2020/12/11 PHP
HTML IMG标签 onload 内存溢出导致浏览器CPU占用过高
2021/03/09 Javascript
jQuery 定时局部刷新(setInterval)
2010/11/19 Javascript
JavaScript中的几个关键概念的理解-原型链的构建
2011/05/12 Javascript
js对象关系图 方便dom操作
2012/03/18 Javascript
javascript实现数字+字母验证码的简单实例
2014/02/10 Javascript
JS代码实现根据时间变换页面背景效果
2016/06/16 Javascript
BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)
2016/07/07 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
bootstrap导航、选项卡实现代码
2016/12/28 Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
2017/06/13 Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
2017/09/05 Javascript
JS简单生成由字母数字组合随机字符串示例
2018/05/25 Javascript
Vue.js点击切换按钮改变内容的实例讲解
2018/08/22 Javascript
说说如何在Vue.js中实现数字输入组件的方法
2019/01/08 Javascript
vue组件数据传递、父子组件数据获取,slot,router路由功能示例
2019/03/19 Javascript
解决layui中onchange失效以及form动态渲染失效的问题
2019/09/27 Javascript
layui+jquery支持IE8的表格分页方法
2019/09/28 jQuery
Vue中axios拦截器如何单独配置token
2019/12/27 Javascript
python条件变量之生产者与消费者操作实例分析
2017/03/22 Python
Python中格式化format()方法详解
2017/04/01 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
StubHub新西兰:购买和出售你的门票
2019/04/22 全球购物
Europcar比利时:租车
2019/08/26 全球购物
大学专科生推荐信范文
2013/11/23 职场文书
满月酒答谢词
2014/01/14 职场文书
安全生产检查通报
2014/01/29 职场文书
汽车销售经理岗位职责
2014/06/09 职场文书
篮球社团活动总结
2014/06/27 职场文书
党政领导班子四风问题对照检查材料思想汇报
2014/10/02 职场文书
DE1107机评
2022/04/05 无线电
mysql幻读详解实例以及解决办法
2022/06/16 MySQL