本文用python3实现模拟调用百度翻译api接口,实现翻译(练习requests库之post请求)。

首先点击翻译,查看请求包,响应包。

我们在v2transapi请求链接的响应包json数据中发现我们需要的返回值,然后查看发送的POST数据

经分析,from:en to:zh 代表英文翻译成中文,query为翻译内容  sign的值和需要翻译的内容有关系。其他值可默认不变

sign值不确定,我们猜测可能由JS或其他内容生成。我们这里转换思路,模拟手机点击翻译查看请求包:

我们在basetrans请求链接的响应包json中发现我们需要的返回值,查看发送的POST数据

只存在query: from: to:     所以我们直接构造手机端翻译来实现百度翻译api接口即可

查看返回的json数据

basetrans_dict["trans"][0]["dst"]即可得到其值

然后我们继续优化 实现自动识别输入内容的语言类型,进行翻译。

我们发现 langdetect请求链接返回的json数据中 lan:对应的值就是需要翻译的类型

langdetect_dict["lan"]即可得到其值

最后附上源码:

#!/usr/bin/env python
# _*_ coding:utf-8 _*_import requests
import jsonheaders = {  # 请求头"User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Mobile Safari/537.36"}
post_langdetect_url = 'https://fanyi.baidu.com/langdetect'  # 用于判断翻译类型的请求url
post_basetrans_url = 'https://fanyi.baidu.com/basetrans'  # 用于得到翻译结果的请求urlinput_word = input("请输入需要翻译的内容:")
langdetect_data = {"query": input_word}post_langdetect_resp = requests.post(post_langdetect_url, data=langdetect_data, headers=headers)
langdetect_dict = json.loads(post_langdetect_resp.content.decode())
langdetect = langdetect_dict["lan"]# print(langdetect)
if langdetect == "en":langtransto = "zh"
else:langtransto = "en"basetrans_data = {"query": input_word,"from": langdetect,"to": langtransto,
}post_basetrans_resp = requests.post(post_basetrans_url, data=basetrans_data, headers=headers)
# print(r.content.decode())
basetrans_dict = json.loads(post_basetrans_resp.content.decode())
result = basetrans_dict["trans"][0]["dst"]
print("翻译结果为:", result)

运行截图:

使用面向对象:

#!/usr/bin/env python
# _*_ coding:utf-8 _*_import requests
import json
import sysclass BaiduFanyi:def __init__(self, trans_str):self.trans_str = trans_strself.lang_detect_url = "https://fanyi.baidu.com/langdetect"self.trans_url = "https://fanyi.baidu.com/basetrans"self.headers = {"User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Mobile Safari/537.36"}def parse_url(self, url, data):  # 发送post请求,获取响应response = requests.post(url, data=data, headers=self.headers)return json.loads(response.content.decode())def get_ret(self, dict_response):  # 提取翻译结果ret = dict_response["trans"][0]["dst"]print("翻译结果为:", ret)def run(self):  # 实现主要逻辑# 1.获取语言类型lang_detect_data = {"query": self.trans_str}# 2.准备post数据lang = self.parse_url(self.lang_detect_url, lang_detect_data)["lan"]trans_data = {"query": self.trans_str, "from": "zh", "to": "en"} if lang == "zh" else \{"query": self.trans_str, "from": "en", "to": "zh"}# 3.发送post请求,获取响应dict_response = self.parse_url(self.trans_url, trans_data)# 4.提取翻译结果self.get_ret(dict_response)if __name__ == '__main__':trans_str = sys.argv[1]baidu_fanyi = BaiduFanyi(trans_str)baidu_fanyi.run()

运行截图:(使用sys模块,翻译时加引号~)

Python爬虫之实现百度翻译相关推荐

  1. Python爬虫:调用百度翻译接口实现中英翻译功能

    百度翻译地址:https://fanyi.baidu.com/ 上篇文章我使用了爬虫获取了有道翻译的接口,这次通过正规渠道获取翻译结果 百度翻译开放平台:http://api.fanyi.baidu. ...

  2. Python爬虫之破解百度翻译--requests案例详解(二)

    这节课我们接着上节课的内容,继续学习requests之破解百度翻译案例.我们上节课已经知道了解题思路,这节课我们来看看代码怎么写. 1.首先导入requests模块 ** ** ** ** 2.获取请 ...

  3. Python爬虫之破解百度翻译--requests案例详解(一)

    们通过requests模块讲了简单的网页采集方法,这一节课我们讲一下怎么用requests模块破解百度翻译.其中包含的知识点有post请求.Jason.异步加载等内容.这节课由于信息量比较大,所以分两 ...

  4. python爬虫 requests模拟百度翻译

    原文 : https://brumesenya.top/index.php/archives/3/ 需求:模拟百度翻译,实现英文单词翻译 首先打开百度翻译的一个中译英网址进行抓包解析:https:// ...

  5. python爬虫——POST请求百度翻译案例(最后制作成小程序)

    一.实现的目标 输入一个英文单词就可以进行百度翻译成中文,将输入的英文单词翻译到的所有信息打印出来,最后通过pyinstaller打包成小程序运行. 二.代码编写 方法一: 代码如下: import ...

  6. python怎么读发音百度翻译-基于python实现百度翻译功能

    运行环境: python 3.6.0 今天处于练习的目的,就用 python 写了一个百度翻译,是如何做到的呢,其实呢就是拿到接口,通过这个接口去访问,不过中间确实是出现了点问题,不过都解决掉了 先晾 ...

  7. python爬虫代码实例-Python爬虫爬取百度搜索内容代码实例

    这篇文章主要介绍了Python爬虫爬取百度搜索内容代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 搜索引擎用的很频繁,现在利用Python爬 ...

  8. python爬虫爬取百度文档

    使用python爬虫爬取百度文档文字 话不多说,直接上代码! import requests import reheaders = {"User-Agent": "Moz ...

  9. python爬虫模拟有道翻译

    python爬虫模拟有道翻译 案例目的: 通过模拟有道翻译,介绍携带form表单发送post请求以及破解form表单中的加密数据. 案例实现功能: 模拟有道翻译,实现中英互译. 爬取过程分析: 找到目 ...

最新文章

  1. phar.php error 139,composer.phar 安装出现PHP Fatal error解决办法
  2. ios 超签签名服务器搭建(超签)
  3. mysql asyn 示例
  4. VS2010-2015对C++11/14/17特性的支持
  5. Codeforces Round #368 (Div. 2) problem: (C) Pythagorean Triples
  6. 2020中国零售品牌数字化转型白皮书
  7. 信息学奥赛一本通(1193:吃糖果)
  8. SpringBoot 精通系列-如何使用Spring Boot Security进行权限控制
  9. java质因数算法_Java实现的质因数分解操作示例【基于递归算法】
  10. MySQL误删数据救命指南:必收藏
  11. 武汉大学计算机学院毕业选题,《计算机毕业论文写作指导》
  12. 【转载】偏最小二乘法回归(Partial Least Squares Regression)
  13. java操作JSON对象
  14. 计算机word2003界面,Word2003工作界面简介
  15. 禅意设计:网络简洁设计的缘起和未来
  16. 学习node.js前所需储备知识
  17. 微信小程序API——微信支付详解(顺便讲一下我遇见的坑)
  18. 中山大学计算机博士_中山大学数据科学与计算机学院2019申请审核制博士招生简章...
  19. 可解释的AI:深入深度学习黑匣子
  20. matlab 零极点分布图,用matlab设计一个程序,直接输入一组零极点,就可以得到零极点图。这应- 一起装修网...

热门文章

  1. STM32F4驱动NEC协议的红外接收头
  2. 如今做网商还能以前一样吗?网站必不可少
  3. hadoop完全分布+hive数据分析
  4. 【点宽专栏】模型投资的风险和矛盾
  5. Oracle compound trigger的大坑(Oracle-12c)
  6. 计算机数据库管理技术论文的结论,计算机数据库论文范文.doc
  7. vue3中使用canvas
  8. 大学应届毕业生应聘java工程师怎样应对面试官的提问?
  9. react cron表达式生成组件qnn-react-cron
  10. uni-app笔记---HbuilderX快捷键