因为我们利用的是百度翻译,而我们发送的也是一个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,回车

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

最后,使用终端就可以了:
利用百度打造自己的百度终端翻译

相关文章:

  • 2021-07-26
  • 2021-09-17
  • 2021-07-11
  • 2021-12-25
  • 2021-07-27
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-02-21
  • 2022-02-15
  • 2022-12-23
  • 2021-09-25
相关资源
相似解决方案