相信大家在日常学习或者是阅读英文文章的过程中,难免会出现几个不认识的单词,或者想快速翻译某段英文的意思。

今天,利用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):

'http://fanyi.youdao.com/translate'  # 创建连接接口

# 创建要提交的数据

'i'] = content  # 输入要翻译的内容

'doctype'] = 'json'

'utf-8')  # 数据转换

# 提交数据并解析

'utf-8')  # 服务器返回结果读取

# 可以看出html是一个json格式

# 以json格式载入

'translateResult'][0][0]['tgt']  # json格式调取

# 输出结果

#发送翻译结果

不了解的同学在仔细看看代码注释。

微信收发送消息

关于微信收发送消息呢,可以看看之前Python打造天气预报机器这一篇文章,代码是直接从那边稍加修改搬过来的。

那边是获取天气,这边是获取翻译结果,思路都是一样的。直接看代码就可以了:

# 如果对方发的是文字,则我们给对方回复以下的东西

@itchat.msg_register([TEXT])

def text_reply(msg):

'翻译',msg['Text'])

if match:

'Text'][msg['Text'].find("+")+1:]

'FromUserName'], content)

我们需要对消息进行匹配分析,以便确定用户需要的是翻译功能而不是天气预报等功能,所以需要利用re进行匹配一下关键字。

然后调用translate函数进行获取发送。

完整代码:

# 有道翻译结果获取

'''

# 引入python中内置的包json. 用来解析和生成json数据的

import json

import itchat

import re

from itchat.content import *

from urllib import request, parse

def translate(userName, content):

'http://fanyi.youdao.com/translate'  # 创建连接接口

# 创建要提交的数据

'i'] = content  # 输入要翻译的内容

'doctype'] = 'json'

'utf-8')  # 数据转换

# 提交数据并解析

'utf-8')  # 服务器返回结果读取

# 可以看出html是一个json格式

# 以json格式载入

'translateResult'][0][0]['tgt']  # json格式调取

# 输出结果

#发送翻译结果

# 如果对方发的是文字,则我们给对方回复以下的东西

@itchat.msg_register([TEXT])

def text_reply(msg):

'翻译',msg['Text'])

if match:

'Text'][msg['Text'].find("+")+1:]

'FromUserName'], content)

注:代码文件的获取请移步留言区。

好了,今天的分享就到这里,喜欢的话记得分享和转发哦。

python实现离线翻译_10分钟教你用Python实现微信翻译机器人相关推荐

  1. python发朋友圈_10分钟教你用Python发一个高逼格的朋友圈

    程序猿声 你与千万程序猿在一起 01 前言 Hello~各位小伙伴们大家好.现在大家是越来越离不开手机,离不开微信了.每天打开手机的第一或者第二件事就是赶紧打开朋友圈看看有什么好玩的东西.偶尔忍不住了 ...

  2. python飞机游戏视频教程_10分钟教你用Python做个打飞机小游戏超详细教程

    01 前言 这次还是用python的pygame库来做的游戏.关于这个库的内容,读者可以上网了解一下.本文只讲解用到的知识.代码参考自网上,自己也做了一点代码简化.尽量把最核心的方面用最简单的方式呈现 ...

  3. python写动态壁纸_10分钟教你用python更换电脑壁纸

    注:本文转载自公众号:木白瞎说 大家好,非常抱歉因为作者懒癌晚期好久没更新(也实在是没写什么值得分享的东西),今天就来诈尸一下(●'◡'●) 今天也没有表情包当引子了,因为做图真的好麻烦啊orz(你说 ...

  4. python经纬度 县信息_10分钟教你用Python获取百度地图各点的经纬度信息

    前言 Python确实是个好东西,可以用来解决很多数据上的烦恼.结合现在各个平台提供的API,可以用Python做很多有用的需求哦~ 需求分析 之前写论文的时候,就有这个需求了.就是抓取百度地图上某些 ...

  5. python实现淘宝自动回复_10分钟教你用Python实现微信自动回复功能

    01 前言&&效果展示 相信大家都有忙碌的时候,不可能一直守在微信上及时回复消息.但微信又不能像QQ一样设置自动回复.无妨,今天,我们就来用Python实现微信的自动回复功能吧,并且把 ...

  6. python微信公众号翻译功能_10分钟教你用Python实现微信翻译机器人

    相信大家在日常学习或者是阅读英文文章的过程中,难免会出现几个不认识的单词,或者想快速翻译某段英文的意思. 今天,利用Python爬虫等知识,教大家打造一个微信下的翻译小助手.好吧,开始干活. 先来看看 ...

  7. python后端和爬虫_10分钟教你Python爬虫(上)-- HTML和爬虫基础

    本文来源于公众号[程序猿声],作者向柯玮 前言 小玮又来啦.这次给大家带来的是爬虫系列的第一课---HTML和爬虫基础. 在最开始的时候,我们需要先了解一下什么是爬虫.简单地来说呢,爬虫就是一个可以自 ...

  8. 通过html直接显示txt内容_10分钟教你用Python爬取Baidu文库全格式内容

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:向柯玮,周航 程序猿声 PS:如有需要Python学习资料的小伙伴可 ...

  9. python爬虫使用模块_10分钟教你Python爬虫(下)--爬虫的基本模块与简单的实战...

    本文来源于公众号[程序猿声],作者向柯玮 前言 各位看客老爷们,新年好.小玮又来啦.这次给大家带来的是爬虫系列的第二课---爬虫的基本模块与简单的实战. 说到爬虫的基本模块,不知道大家之前有没有了解过 ...

最新文章

  1. 遥控车_vijos1458_纪中1724_水
  2. android 虚拟机快捷键中英列表
  3. 网站优化中能有效提升网站打开速度的技巧有哪些?
  4. git 怎么提交忽略文件夹_git 设置忽略文件提交的几种方式
  5. Practical Mathematical Handwriting
  6. 为什么这么多应届生要进入互联网行业?
  7. 使用 Docker Machine 添加机器记录
  8. 学习记录:UI自动化断言那些内容
  9. html语言 搜索引擎关键词 怎么写,HTML关键词
  10. 2021年美容师(中级)考试题及美容师(中级)模拟考试
  11. 企业邮箱的好处有哪些?企业邮箱使用场景
  12. 国仁老猫:抖音影视剪辑5种赚钱方法、18个素材网站、8.0剪辑方法防判搬运(建议收藏)
  13. AFM的工作模式(一)
  14. 站住,你这个Promise!
  15. 卡巴斯基网络版客户端安装步骤
  16. 亚马逊广告接口 amazon advert api 申请流程
  17. 连续自然数平立方求和推导
  18. java发邮件新浪_JavaMail如何通过sina企业邮箱进行发送邮件?
  19. c 之父 java is not_Java之父评价C语言之父:我用尽了形容词
  20. 【前端】Angular8入门教程笔记+Angular material安装与使用

热门文章

  1. mysql 数据分析的步骤_数据分析8个主要步骤
  2. php 开源建站工具 -- 资料收集
  3. wordpress 怎么获取站点标题
  4. php7.2 event扩展php_sockets_le_socket错误解决
  5. 深入了解crc32算法
  6. 让窗体获得焦点,一定会有您用到的时候
  7. [react] React怎样跳过重新渲染?
  8. 前端学习(3140):react-hello-react之setstate属性
  9. [html] 你知道什么是粘性布局吗?
  10. [js] 写一个方法,当给定数字位数不足8位时,则在左边补充0以补足8位数的方法