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实现端口复用实例代码
Jul 03 Python
Python内置数据类型详解
Aug 18 Python
离线安装Pyecharts的步骤以及依赖包流程
Apr 23 Python
mac下pycharm设置python版本的图文教程
Jun 13 Python
Python学习笔记之视频人脸检测识别实例教程
Mar 06 Python
jupyter note 实现将数据保存为word
Apr 14 Python
Python基于wordcloud及jieba实现中国地图词云图
Jun 09 Python
pandas DataFrame运算的实现
Jun 14 Python
python 实现数据库中数据添加、查询与更新的示例代码
Dec 07 Python
python 制作网站筛选工具(附源码)
Jan 21 Python
Python使用海龟绘图实现贪吃蛇游戏
Jun 18 Python
Sentry的安装、配置、使用教程(Sentry日志手机系统)
Jul 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
苏联队长,苏联超人蝙蝠侠,这些登场的“山寨”英雄真的很严肃
2020/04/09 欧美动漫
使用array mutisort 实现按某字段对数据排序
2013/06/18 PHP
php对包含html标签的字符串进行截取的函数分享
2014/06/19 PHP
WordPress中缩略图的使用以及相关技巧
2015/11/24 PHP
PHP PDOStatement::errorCode讲解
2019/01/31 PHP
tp5框架使用cookie加密算法实现登录功能示例
2020/02/10 PHP
HTML中事件触发列表与解说
2007/07/09 Javascript
用jquery设置按钮的disabled属性的实现代码
2010/11/28 Javascript
jQuery实现可拖动的浮动层完整代码
2013/05/27 Javascript
利用js制作html table分页示例(js实现分页)
2014/04/25 Javascript
理解javascript闭包
2015/12/15 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
2016/04/29 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
2016/11/30 Javascript
jquery实现自适应banner焦点图
2017/02/16 Javascript
php输出全部gb2312编码内的汉字方法
2017/03/04 Javascript
原生js轮播特效
2017/05/18 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
React+Webpack快速上手指南(小结)
2018/08/15 Javascript
JS立即执行函数功能与用法分析
2019/01/15 Javascript
vue-router传参用法详解
2019/01/19 Javascript
swiper实现异形轮播效果
2019/11/28 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
[01:02:46]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python和Ruby中each循环引用变量问题(一个隐秘BUG?)
2014/06/04 Python
Python实现抓取百度搜索结果页的网站标题信息
2015/01/22 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
2017/11/30 Python
基于python神经卷积网络的人脸识别
2018/05/24 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
python如何实现数据的线性拟合
2019/07/19 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
2020/03/30 Python
英国领先的汽车轮胎和快速健康中心:Kwik Fit
2017/10/29 全球购物
女子职高个人自荐书
2014/02/01 职场文书
创意广告词
2014/03/17 职场文书
小学毕业演讲稿
2014/04/25 职场文书
就业协议书样本
2014/08/20 职场文书
小学教师个人工作总结2015
2015/04/20 职场文书