Python翻译软件,python翻译器在线
编程本身和年龄无关。不管你现在是14、15岁还是40、50岁,如果你热爱它,愿意继续为它付出,你一定会有所收获。
本文是编程课堂上一个“小”读者的投稿(互助学习1组的同学应该很熟悉作者的名字)。我看着他不断出新的代码和技术文章,不禁感叹“以后的人生真牛逼”。
这是一个爬虫基本分析和操作的开发案例,在这里分享给大家。
当我需要在电脑上翻译一个单词时,我会这样做:
打开浏览器=打开百度翻译=输入单词=获取翻译。
但是,有时候,我在命令行环境下写代码的时候,懒得切换到浏览器,等页面加载。
于是我就想,能不能用万能的python做一个命令行下的翻译工具?
去做吧!
在网上搜了一些资料,几经操作,终于弄出来了。看看最后的效果:
在这个工具中,我使用了百度、有道和谷歌(可选)翻译。
发展思路
其中,有道翻译的获取原理和百度翻译类似。这里我们选择百度翻译来玩:
接下来,右键单击检查并选择网络中的XHR(发送到服务器的数据请求)。然后我们在输入框中输入save这个词,一会儿就可以看到里面有几个sug标签。单击打开它:
如您所见,这个sug请求包含了我们想要的数据。进去,请求URL就是我们需要请求的URL。另外,我们在Request方法中看到的,是POST方法,也就是提交表单:
移动到最后,我们看到提交的表单参数:
在表单数据中,我们看到表单是一个字典:{kw: save},其中save是我们要查询的单词,所以我们使用requests.post来模拟这个请求:
# URL和表单
url=https://fanyi.baidu.com/sug
Form_data={kw: word}
#发布请求网站的方式
response=requests.post(url,data=Form_data,headers=headers)
我们可以试着把返回的东西打印出来,你会发现是以json格式返回的,所以需要引入内置库JSON进行解析:
content=JSON . loads(response . text)#以字典形式加载
在打印出来的json格式文本中,我们发现翻译结果在[data][0][v](刚才图片中我们也看到了)。接下来,我们提取并返回它:
result=content[ data ][0][ v ]#获取翻译结果
回送结果
这样就完成了提交表单,实现了百度翻译。
下面是一些常用的爬虫分析和操作,有些翻译基本相似,这里就不赘述了。具体操作请参考本文末尾给出的完整代码。
接下来我们来看看独特的Google Translate,有点复杂。谷歌翻译有api,但是要花钱.我不想为此付钱.网上有大佬给出了解决方案(这里我们简单看一下原理):
操作方式与百度翻译类似,我们看到这里有一个额外的请求,它包含了我们想要的翻译结果:
让我们回到之前的请求URL,找到之前的直接副本。q是我们需要翻译的词,但是这个tk参数是一个棘手的参数。我的代码使用的解决方案是在线的,我是模仿Google Translate页面上提供的函数用JavaScript计算这个参数的(我怀疑他只是拿了前端源代码,没有仔细对比)。
那么如何在python中执行JavaScript代码呢?我们可以使用库pyexecjs(注意这个库的导入名是execjs)。这部分的源代码在Py4Js类中。
特别是因为不能直接使用Google Translate,所以我把它设为可选,默认不会调用。
施用方式
我已经将这个项目发布到pypi,您可以通过pip命令如下安装它:
pip安装快速翻译
用起来也很简单(加-g增加谷歌翻译结果):
Trans -t,你要翻译什么
示例:
你好
=========================
有道翻译结果:你好
百度翻译结果:[n ho]您好;你好;你好;
=========================
$ trans -t你好-g
=========================
有道翻译结果:你好
百度翻译结果:[n ho]您好;你好;你好;
谷歌翻译结果:你好
=========================
本案例完整代码:https://github。com/py nickle/amazing-python/blob/master/Gooey/translate _ app/quick translate。巴拉圭
点安装命令:
点安装快速翻译
作者:皮尼克
-
一起学,走得远!
欢迎搜索:Crossin的编程教室
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。