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正则表达式
Jan 15 Python
简单讲解Python中的数字类型及基本的数学计算
Mar 11 Python
Python列表切片用法示例
Apr 19 Python
django模板语法学习之include示例详解
Dec 17 Python
Python使用try except处理程序异常的三种常用方法分析
Sep 05 Python
python3 unicode列表转换为中文的实例
Oct 26 Python
Python多进程入门、分布式进程数据共享实例详解
Jun 03 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
Jul 09 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
Jul 20 Python
python能做哪些生活有趣的事情
Sep 09 Python
Python 中的 copy()和deepcopy()
Nov 07 Python
Python加密与解密模块hashlib与hmac
Jun 05 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
一个简易需要注册的留言版程序
2006/10/09 PHP
ueditor 1.2.6 使用方法说明
2013/07/24 PHP
PHP设计模式之适配器模式定义与用法详解
2018/04/03 PHP
保证JavaScript和Asp、Php等后端程序间传值编码统一
2009/04/17 Javascript
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
基于jquery的二级联动菜单实现代码
2011/04/25 Javascript
jquery中animate动画积累的解决方法
2013/10/05 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
2015/09/24 Javascript
javascript中apply/call和bind的使用
2017/02/15 Javascript
基于js中document.cookie全面解析
2017/09/14 Javascript
vue项目中v-model父子组件通信的实现详解
2017/12/10 Javascript
React 组件转 Vue 组件的命令写法
2018/02/28 Javascript
vue 实现通过手机发送短信验证码注册功能
2018/04/19 Javascript
js array数组对象操作方法汇总
2019/03/18 Javascript
layer.msg()去掉默认时间,实现手动关闭的方法
2019/09/12 Javascript
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
2020/07/28 Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
2020/08/04 Javascript
JavaScript语句错误throw、try及catch实例解析
2020/08/18 Javascript
[50:27]Secret vs VG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python3 入门教程 简单但比较不错
2009/11/29 Python
Python通过属性手段实现只允许调用一次的示例讲解
2018/04/21 Python
python opencv 图像拼接的实现方法
2019/06/27 Python
python多线程分块读取文件
2019/08/29 Python
Python中 CSV格式清洗与转换的实例代码
2019/08/29 Python
python银行系统实现源码
2019/10/25 Python
对Matlab中共轭、转置和共轭装置的区别说明
2020/05/11 Python
html5嵌入内容_动力节点Java学院整理
2017/07/07 HTML / CSS
HTML table 表格边框的实现思路
2019/10/12 HTML / CSS
Trunki英国官网:儿童坐骑式行李箱
2017/05/30 全球购物
行政经理的岗位职责
2013/11/23 职场文书
移交协议书
2014/08/19 职场文书
招商引资工作汇报材料
2014/10/28 职场文书
2015年销售员工作总结范文
2015/04/07 职场文书
2015年药品销售工作总结范文
2015/05/25 职场文书
成功的商业计划书这样写才最靠谱
2019/07/12 职场文书
MySQL学习之基础命令实操总结
2022/03/19 MySQL