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实现简单的socket server实例
Apr 29 Python
python中计算一个列表中连续相同的元素个数方法
Jun 29 Python
Python实现钉钉订阅消息功能
Jan 14 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
Python HTMLTestRunner可视化报告实现过程解析
Apr 10 Python
浅析python函数式编程
Sep 26 Python
pytorch学习教程之自定义数据集
Nov 10 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
Jan 27 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
Jan 29 Python
pytorch __init__、forward与__call__的用法小结
Feb 27 Python
python入门之算法学习
Apr 22 Python
Python pandas读取CSV文件的注意事项(适合新手)
Jun 20 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变量可用字符
2014/05/28 PHP
PHP通过串口实现发送短信
2015/07/08 PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
2018/07/30 PHP
PHP CURL使用详解
2019/03/21 PHP
Laravel5.7 数据库操作迁移的实现方法
2019/04/12 PHP
BOOM vs RR BO5 第四场 2.14
2021/03/10 DOTA
JavaScript高级程序设计 DOM学习笔记
2011/09/10 Javascript
javascript使用中为什么10..toString()正常而10.toString()出错呢
2013/01/11 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
2013/11/14 Javascript
点击标签切换和自动切换DIV选项卡
2014/08/10 Javascript
JavaScript中的style.cssText使用教程
2014/11/06 Javascript
javascript实现回车键提交表单方法总结
2015/01/10 Javascript
jQuery实现鼠标经过弹出提示信息的地图热点效果
2015/08/07 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
2016/05/30 Javascript
关于axios不能使用Vue.use()浅析
2018/01/12 Javascript
JS使用tween.js动画库实现轮播图并且有切换功能
2018/07/17 Javascript
微信小程序批量上传图片到七牛(推荐)
2019/12/19 Javascript
Nodejs封装类似express框架的路由实例详解
2020/01/05 NodeJs
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
python实现在控制台输入密码不显示的方法
2015/07/02 Python
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
使用Python搭建虚拟环境的配置方法
2018/02/28 Python
python获取中文字符串长度的方法
2018/11/14 Python
python爬取指定微信公众号文章
2018/12/20 Python
python tkinter图形界面代码统计工具
2019/09/18 Python
利用python实现AR教程
2019/11/20 Python
解决Pycharm 导入其他文件夹源码的2种方法
2020/02/12 Python
Python+redis通过限流保护高并发系统
2020/04/15 Python
公务员试用期满考核材料
2014/05/22 职场文书
高中课程设置方案
2014/05/28 职场文书
乡镇党员干部四风对照检查材料思想汇报
2014/09/27 职场文书
一年级班主任工作总结2014
2014/11/08 职场文书
寻找成龙观后感
2015/06/12 职场文书
工作自我评价范文
2019/03/21 职场文书
怎样评估创业计划书是否有可行性?
2019/08/07 职场文书
Nginx+Tomcat负载均衡集群的实现示例
2021/10/24 Servers