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使用gensim计算文档相似性
Apr 10 Python
从源码解析Python的Flask框架中request对象的用法
Jun 02 Python
python表格存取的方法
Mar 07 Python
Django Rest framework之权限的实现示例
Dec 17 Python
PyQt5实现从主窗口打开子窗口的方法
Jun 19 Python
Python操作多维数组输出和矩阵运算示例
Nov 28 Python
Python连接mysql数据库及简单增删改查操作示例代码
Aug 03 Python
python如何导出微信公众号文章方法详解
Aug 31 Python
python 实现aes256加密
Nov 27 Python
Django显示可视化图表的实践
May 10 Python
Jupyter Notebook 如何修改字体和大小以及更改字体样式
Jun 03 Python
Python Django ORM连表正反操作技巧
Jun 13 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文章采集URL补全函数(FormatUrl)
2012/08/02 PHP
深入PHP empty(),isset(),is_null()的实例测试详解
2013/06/06 PHP
php实现在服务器上创建目录的方法
2015/03/16 PHP
php实现的一段简单概率相关代码
2016/05/30 PHP
php基于session锁防止阻塞请求的方法分析
2017/08/07 PHP
django中的ajax组件教程详解
2018/10/18 PHP
Javacript实现颜色梯度变化和渐变的效果代码
2013/05/31 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
2014/05/14 Javascript
如何获取网站icon有哪些可行的方法
2014/06/05 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
JS+CSS实现的日本门户网站经典选项卡导航效果
2015/09/27 Javascript
JavaScript学习笔记之数组的增、删、改、查
2016/03/23 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
AngularJS模仿Form表单提交的实现代码
2016/12/08 Javascript
微信小程序 ES6Promise.all批量上传文件实现代码
2017/04/14 Javascript
JS简单实现自定义右键菜单实例
2017/05/31 Javascript
Vue仿手机qq的实例代码(demo)
2017/09/08 Javascript
vue scroller返回页面记住滚动位置的实例代码
2018/01/29 Javascript
实例讲解v-if和v-show的区别
2019/01/31 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
2019/05/23 Javascript
python实现simhash算法实例
2014/04/25 Python
分析Python的Django框架的运行方式及处理流程
2015/04/08 Python
在Python中使用Neo4j的方法
2019/03/14 Python
详解Python 中sys.stdin.readline()的用法
2019/09/12 Python
音频处理 windows10下python三方库librosa安装教程
2020/06/20 Python
Python基于pillow库实现生成图片水印
2020/09/14 Python
使用CSS3滤镜的filter:blur属性制作毛玻璃模糊效果的方法
2016/07/08 HTML / CSS
自我鉴定书范文
2013/10/02 职场文书
关于抽烟的检讨书
2014/02/25 职场文书
大学生学期自我鉴定
2014/03/19 职场文书
2014年五一劳动节社区活动总结
2014/04/14 职场文书
房产协议书范本
2014/10/18 职场文书
2014年实习期工作总结
2014/11/27 职场文书
旅游安全责任协议书
2016/03/22 职场文书
小学四年级作文之写景
2019/08/23 职场文书
JS如何实现基于websocket的多端桥接平台
2021/05/14 Javascript