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实现数通设备tftp备份配置文件示例
Apr 02 Python
在centos7中分布式部署pyspider
May 03 Python
对Xpath 获取子标签下所有文本的方法详解
Jan 02 Python
django 中的聚合函数,分组函数,F 查询,Q查询
Jul 25 Python
关于Python中定制类的比较运算实例
Dec 19 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
Apr 23 Python
什么是Python变量作用域
Jun 03 Python
Python flask框架实现浏览器点击自定义跳转页面
Jun 04 Python
用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)
Jun 04 Python
Python爬取12306车次信息代码详解
Aug 12 Python
Python scrapy爬取起点中文网小说榜单
Jun 13 Python
Python Pygame实战之塔防游戏的实现
Mar 17 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+XML 制作简单的留言本 图文教程
2009/11/02 PHP
mysql alter table命令修改表结构实例详解
2016/09/24 PHP
PHP异步进程助手async-helper
2018/02/05 PHP
PHP支付宝当面付2.0代码
2018/12/21 PHP
些很实用且必用的小脚本代码
2006/06/26 Javascript
一实用的实现table排序的Javascript类库
2007/09/12 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
2014/08/27 Javascript
jquery中toggle函数交替使用问题
2015/06/22 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
2016/06/13 Javascript
Ionic3实现图片瀑布流布局
2017/08/09 Javascript
ES6/JavaScript使用技巧分享
2017/12/14 Javascript
JS小球抛物线轨迹运动的两种实现方法详解
2017/12/20 Javascript
使用JavaScript保存文本文件到本地的两种方法
2019/01/22 Javascript
jQuery实现手风琴效果(蒙版)
2020/01/11 jQuery
写了个监控nginx进程的Python脚本
2012/05/10 Python
在Python中使用matplotlib模块绘制数据图的示例
2015/05/04 Python
Python多层嵌套list的递归处理方法(推荐)
2016/06/08 Python
python实现textrank关键词提取
2018/06/22 Python
flask中的wtforms使用方法
2018/07/21 Python
解决pycharm运行出错,代码正确结果不显示的问题
2018/11/30 Python
python 根据时间来生成唯一的字符串方法
2019/01/14 Python
Python 给定的经纬度标注在地图上的实现方法
2019/07/05 Python
django的模型类管理器——数据库操作的封装详解
2020/04/01 Python
使用pandas库对csv文件进行筛选保存
2020/05/25 Python
如何把python项目部署到linux服务器
2020/08/26 Python
Sephora丝芙兰印尼官方网站:购买化妆品和护肤品
2018/07/02 全球购物
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
运动会稿件100字
2014/02/21 职场文书
人力资源求职信
2014/05/25 职场文书
物业总经理助理岗位职责
2014/06/29 职场文书
2014年数学教师工作总结
2014/12/03 职场文书
2015教师见习期工作总结
2014/12/12 职场文书
2016年情人节问候语
2015/11/11 职场文书
企业愿景口号
2015/12/25 职场文书
感谢信
2019/04/11 职场文书
eclipse创建项目没有dynamic web的解决方法
2021/06/24 Java/Android