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实现一个简单的多线程TCP服务器的教程
May 05 Python
Django框架的中的setting.py文件说明详解
Oct 15 Python
python+ffmpeg批量去视频开头的方法
Jan 09 Python
Python绘制并保存指定大小图像的方法
Jan 10 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
Feb 07 Python
对pyqt5多线程正确的开启姿势详解
Jun 14 Python
django迁移数据库错误问题解决
Jul 29 Python
Python+OpenCV实现实时眼动追踪的示例代码
Nov 11 Python
Python多个装饰器的调用顺序实例解析
May 22 Python
python压包的概念及实例详解
Feb 17 Python
教你怎么用PyCharm为同一服务器配置多个python解释器
May 31 Python
Python中文纠错的简单实现
Jul 07 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中路径问题的解决方案
2006/10/09 PHP
超级简单的php+mysql留言本源码
2009/11/11 PHP
zend optimizer在wamp的基础上安装图文教程
2013/10/26 PHP
保存到桌面、设为桌面且带图标的PHP代码
2013/11/19 PHP
Windows下的PHP安装pear教程
2014/10/24 PHP
php结合正则获取字符串中数字
2015/06/19 PHP
浅析Yii2 gridview实现批量删除教程
2016/04/22 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
2019/10/15 PHP
jquery实现表单输入时提示文字滑动向上效果
2015/08/10 Javascript
vue使用stompjs实现mqtt消息推送通知
2017/06/22 Javascript
React如何避免重渲染
2018/04/10 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
jquery树形插件zTree高级使用详解
2019/08/16 jQuery
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
2019/11/13 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
在Python中使用M2Crypto模块实现AES加密的教程
2015/04/08 Python
pyqt 实现为长内容添加滑轮 scrollArea
2019/06/19 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
OpenCV+Python--RGB转HSI的实现
2019/11/27 Python
使用OpenCV circle函数图像上画圆的示例代码
2019/12/27 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
2020/02/14 Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
2020/02/20 Python
纯HTML5+CSS3制作生日蛋糕代码
2016/11/16 HTML / CSS
人力资源部门的主要职能
2014/02/22 职场文书
大学新闻系求职信
2014/06/03 职场文书
上海世博会志愿者口号
2014/06/17 职场文书
2014大学生党员评议个人总结
2014/09/22 职场文书
玩手机检讨书1000字
2014/10/20 职场文书
三八红旗手事迹材料
2014/12/26 职场文书
2015年安全生产月活动总结
2015/03/26 职场文书
2015年幼儿园班务工作总结
2015/05/12 职场文书
学风建设主题班会
2015/08/17 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
代码解析React中setState同步和异步问题
2021/06/03 Javascript
Win11自动黑屏怎么办 Win11自动黑屏设置教程
2022/07/15 数码科技
CSS 实现磨砂玻璃(毛玻璃)效果样式
2023/05/21 HTML / CSS