利用百度打造自己的百度终端翻译

因为我们利用的是百度翻译,而我们发送的也是一个post请求,所以利用requests.get方法肯定是不能达到目的,我们需要使用requests.post方法。以下是post方法所用到的参数:


data就是我们需要发送的参数

我们看看我们怎么样通过浏览器发送的post请求,利用谷歌浏览器:

我们关注Form Data里面的内容:

这里就是我们post请求所需要的data数据,但是不难看出,sign和token是随机的,而不是固定,这样我们就得不到其准确的值。但是我们可以通过别的渠道发送post请求,例如:

我们可以通过这个按钮将原本的网页形式换成手机端的形式,看一下发送的数据,即data:

此时我们可以看到,需要的data数据就只有三条,而且都是可控的,那么我们就可以写我们的代码了


注意:
1

由于python2中的编码问题,所以我们需要加上这两行代码,否则我们在翻译过程中的中文将不会正确的显示出来,而python3中就不会出现这样的问题,则不需要写这两行代码
2

从这个json数据中获取我们想要的数据

知识点:
一,sys.argv
sys.argv是python用来获取命令行参数的,举例:

我们可以看出,当我们在python fanyi.py后面加参数时,通过sys.argv就可以获得后面的参数,而且返回的是一个列表的形式,而且第一个参数就是python后面的数据 后面的第一个数据就是我们想要的数据,所以:

二,利用alias将终端里的python命令转换为我们想要的命令
因为我使用的ubantu16.04,所以我们找到我们的.bashrc文件,在家目录下,即:

使用vi打开我们的.bashrc文件,在最后一行加一行代码,如图(python后面加你的代码的绝对路径)


然后返回终端,输入source .bashrc,回车

最后,使用终端就可以了: