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爬虫数据处理(详解)
Jun 10 Python
wxPython实现窗口用图片做背景
Apr 25 Python
Python中如何使用if语句处理列表实例代码
Feb 24 Python
python使用tkinter库实现五子棋游戏
Jun 18 Python
对于Python深浅拷贝的理解
Jul 29 Python
Python测试模块doctest使用解析
Aug 10 Python
Python帮你微信头像任意添加装饰别再@微信官方了
Sep 25 Python
Python小程序 控制鼠标循环点击代码实例
Oct 08 Python
使用python计算三角形的斜边例子
Apr 15 Python
Django基于客户端下载文件实现方法
Apr 21 Python
Python tkinter之Bind(绑定事件)的使用示例
Feb 05 Python
python实现简单反弹球游戏
Apr 12 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/09/16 PHP
php将字符串全部转换成大写或者小写的方法
2015/03/17 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
2016/10/09 PHP
登陆成功后自动计算秒数执行跳转
2014/01/23 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
Jquery easyUI 更新行示例
2014/03/06 Javascript
javascript判断chrome浏览器的方法
2014/03/26 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
Javascript中的关键字和保留字整理
2014/10/16 Javascript
ECMAScript6中Set/WeakSet详解
2015/06/12 Javascript
jQuery调用Webservice传递json数组的方法
2016/08/06 Javascript
简单实现bootstrap导航效果
2017/02/07 Javascript
vue的基本用法与常见指令
2017/08/15 Javascript
js中的 || 与 && 运算符详解
2018/05/24 Javascript
vue中如何去掉空格的方法实现
2018/11/09 Javascript
在Web关闭页面时发送Ajax请求的实现方法
2019/03/07 Javascript
vue el-table实现自定义表头
2019/12/11 Javascript
[01:03:31]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第二局
2016/02/26 DOTA
[45:25]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
python 内置函数汇总详解
2019/09/16 Python
浅析pandas 数据结构中的DataFrame
2019/10/12 Python
使用Python实现画一个中国地图
2019/11/23 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
解决python gdal投影坐标系转换的问题
2020/01/17 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
pycharm配置python 设置pip安装源为豆瓣源
2021/02/05 Python
Clarks鞋法国官方网站:英国其乐鞋品牌
2018/02/11 全球购物
绩效工资实施方案
2014/03/15 职场文书
党组织领导班子整改方案
2014/10/25 职场文书
夫妻分居协议书范本(有子女版)
2014/11/01 职场文书
初中成绩单评语
2014/12/29 职场文书
刑事附带民事起诉状
2015/05/19 职场文书
工伤事故赔偿协议书
2015/08/06 职场文书
导游词之绍兴柯岩古镇
2020/01/09 职场文书
基于Redis的List实现特价商品列表功能
2021/08/30 Redis