这次我们来用 requests 实现一个简单的能够中英互译的翻译器。运用到 post 方法。

准备

安装 requests 库:

快捷键 Windows+r 打开运行控制框,输入 cmd,进入命令行,输入:

pip install requests

导入:

import requests

网页分析

首先进入360翻译官网,右键,点击检查元素,调出开发者模式:

接下来我们点击Network(网络),看到左上角有一个点,如果它变成红色,那么就可以开始录制行为,否则点击这个点,使他变成红色:

接下来我们在翻译栏内任意输入一个单词(这里以“你好”为例),点击翻译(不要做多余的动作),浏览器会记录下我们所做的网络活动。我们可以看到我们所发出的请求的网址,在这些网址中寻找最有可能的一条(可能会有些麻烦,慢慢找,不着急),点开来查看我们的活动。怎么找到自己需要的是哪一条呢,这里有一个方便的方法,一个个点开来,在Preview(预览)栏,看到它有出现我们需要的信息,那么大概率就是这个了:

在这里我们是找到一个search开头的链接,点进去,在 Preview 一栏可以看到有翻译的结果,位置为:data > fanyi

接下来切到Headers一栏,这里有网页请求的一些信息:

URL是进行网页请求的地址,注意这个与你在上面搜索栏看到的是不一样的。Method 后的POST是请求方式。Status Code是状态码,200表示请求成功。POST方式就要使用类的 post 方法:

requests.post(url=<url地址>, headers=<请求头>, data=<信息>)

首先是 url,我们需要一个字符串类型的变量来存储这个 url 地址,一般来说,只需要问号前面的部分即可:

url = 'https://fanyi.so.com/index/search'

接下来是请求头,请求头就是 Requests Headers 这一部分,用一个字典存储:

比较重要的是 cookie

headers = {'cookie': 'QiHooGUID=4A036...'
}

这个 cookie 是什么呢,其实它的作用是传输了用户的信息、身份,就好比你登录了 CSDN 之后,你再进入这个网页时就不需要再登陆了,因为浏览器已经保存了你的身份信息并发给了网页。所以我们在进行一些需要登录操作的网页请求时,必须带上 cookie。

但是我们发现它会报错,猜测是因为我们的请求头缺少了些必要的信息,我们把 Headers 全部复制上去,这样就不会有错了。然后我们一条条删除,查找出必要的哪一条。最后发现pro为必要的信息:

headers = {'Cookie': 'QiHooGUID=4A0361B33E8B3D5816820A7B6AAC97FB.1626956503010; __guid=22834110.4129050398887859700.1626956506548.7964; __huid=11Zr1Kp5K8ysG624Qkw3uZ1kJkpbPkorkhddyIEXj9EWs%3D; __DC_gid=22834110.425238169.1626956506599.1626956570554.3; Q_UDID=14c66d71-1de2-3db0-9091-a7c84e24fab8; count=1; gtHuid=1','pro': 'fanyi',
}

最后是 data,再滑到最底部,看到一些信息,这就是 data,同样以字典形式保存:

我们可以发现,在data中,最重要的是query一项,表示要转换的单词。经试验我发现,eng项表示是否从英文转中文,如果是,则为1,否则为0。我们把这些都放到 data 中去:

data = {'eng': '0','query': '你好'
}

请求

接下来我们可以发送请求获取请求结果:

respond = requests.post(url=url, data=data, headers=headers)

接下来看看请求结果:

print(respond.status_code) # 打印状态码
print(respond.text) # 打印返回文本
print(respond.json()['data']) # 打印返回文本经json解码后的data部分

输出:

最后,我们根据翻译结果的位置打印出翻译结果:

print(r.json()['data']['fanyi'])

输出:

Hello

这样,我们就完成了翻译中文的功能。

如果要翻译英文,就只需将 data 中的eng设为 1 即可:

url='https://fanyi.so.com/index/search'
headers = {'Cookie': 'QiHooGUID=4A0361B33E8B3D5816820A7B6AAC97FB.1626956503010; __guid=22834110.4129050398887859700.1626956506548.7964; __huid=11Zr1Kp5K8ysG624Qkw3uZ1kJkpbPkorkhddyIEXj9EWs%3D; __DC_gid=22834110.425238169.1626956506599.1626956570554.3; Q_UDID=14c66d71-1de2-3db0-9091-a7c84e24fab8; count=1; gtHuid=1','pro': 'fanyi',
}
data = {'eng': '1','query': 'hello'
}r = requests.post(url, data=data, headers=headers)
print(r.json()['data']['fanyi'])

输出:

你好

完整的翻译器

为了实现中英互译,我们可以在开始时请用户输入转换的语言以及单词,然后再翻译。完整代码如下:

import requestslanguage = input('请选择输入语言(中文/英文):')
eng = 1 if language == '英文' else 0
query = input('请输入要翻译的单词:')url='https://fanyi.so.com/index/search'
headers = {'Cookie': 'QiHooGUID=4A0361...','pro': 'fanyi',
}
data = {'eng': eng,'query': query
}r = requests.post(url, data=data, headers=headers)
print(r.json()['data']['fanyi'])

后记

这篇文章就到这里了,点个赞支持一下吧!

下一篇文章 我们将学习网页请求的方法之二:GET

本文收录于专栏:Python爬虫、Python实例
关注作者,持续阅读作者的文章,学习更多Python知识!
https://blog.csdn.net/weixin_52132159


2021/7/28

推荐文章:

  • Python爬虫 | 爬取b站北京奥运会开幕式弹幕,有多少人从东京奥运会来的?
  • 绝密!Python爬虫告诉你刷分机器人背后的原理!这篇文章差点没过审

Python爬虫从0到1 | 入门实战:360翻译 ——requests库之POST方法(新手必看,保姆级别教学)相关推荐

  1. python用代码安装3.6_Python3.6安装及引入Requests库的实现方法

    本博客可能没有那么规范,环境之类的配置.只是让你直接开始编程写python. 至于各种配置网络上有多种方法. 本文仅代表我的观点的一种方法. 电脑环境:win10 64位 第一步:下载python. ...

  2. python爬虫实践——零基础快速入门(四)爬取小猪租房信息

    上篇文章我们讲到python爬虫实践--零基础快速入门(三)爬取豆瓣电影 接下来我们爬取小猪短租租房信息.进入主页后选择深圳地区的位置.地址如下: http://sz.xiaozhu.com/ 一,标 ...

  3. 从入门到入土:Python爬虫学习|实例练手|爬取百度翻译|Selenium出击|绕过反爬机制|

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  4. python新手入门代码-新手必看:手把手教你入门 Python

    原标题:新手必看:手把手教你入门 Python 本文为 AI 研习社编译的技术博客,原标题 : Learning Python: From Zero to Hero 翻译 |永恒如新的日常校对 | 酱 ...

  5. Python爬虫之Js逆向案例(6)-某道翻译

    Python爬虫之Js逆向案例(6)-有道翻译 声明:某道翻译加密逆向分析仅用于研究和学习,如有侵权,可联系删除 大家好,距离上次分享js逆向案例已经有一个月了,在这期间每次在快要揭秘出来时.整理文章 ...

  6. python新手入门总结_初学python的操作难点总结(新手必看篇)

    如下所示: 1 在cmd下 盘与盘之间的切换 直接 D或d: 就好 2 查找当前盘或者文件下面的目录 直接 dir 3 想在一个盘下进去一个文件夹,用cd空格目标文件 cd p 4 写文件的第一个字母 ...

  7. python怎么安装requests库-Python3.6安装及引入Requests库的实现方法

    本博客可能没有那么规范,环境之类的配置.只是让你直接开始编程写python. 至于各种配置网络上有多种方法. 本文仅代表我的观点的一种方法. 电脑环境:win10 64位 第一步:下载python. ...

  8. the crew 服务器维护,飙酷车神 the crew入门指南 新手必看

    就如同我们所知道的那样,EA 极品飞车的跳票,让<飙酷车神the crew>成为了今年竞速游戏的重头戏,而飙酷车神本身又融合了无缝式衔接的沙盒玩法,与我们所熟知的一般赛车游戏略有不同.接下 ...

  9. RISC-V入门笔记(新手必看!)

    目录 什么是RISC-V RISC-V 发展 RISC-V指令集 RISC-V特权架构 RISC-V通用寄存器 RISC-V CSR寄存器 M模式CSR寄存器 S模式CSR寄存器 总结 笔者学习RIS ...

  10. 新手必看:生成对抗网络的初学者入门指导

    新手必看:生成对抗网络的初学者入门指导 https://www.cnblogs.com/DicksonJYL/p/9698877.html 本文为 AI 研习社编译的技术博客,原标题 A Beginn ...

最新文章

  1. pg数据库json数据类型_PG数据类型
  2. Fire uva 11624
  3. vue css自定义标签,Vue如何使用CSS自定义变量
  4. Docker查看关联容器的卷宗在本机的存储位置
  5. 学规划或GIS需要安装的软件
  6. 助力南京打造创新名城 第三届未来网络发展大会将召开
  7. 腾讯十年经验总结分享!软件测试经典面试题!你招架的住吗?
  8. 让菜鸡讲一讲网络流(isap)
  9. POJ 3047 Bovine Birthday 日期定周求 泽勒公式
  10. URL中 # ? 是什么意思
  11. 下载 沙耶之歌Android_沙耶之歌安卓版
  12. 特殊的自然常数π以及e
  13. Linux 命令xxd输出十六进制
  14. [审核]App审核(第三方登录)
  15. PHP:【微信小程序】初识微信小程序,微信小程序配置
  16. wps在线预览接口_WPS文档在线预览接入的一点心得
  17. 基于PCA的降维中,进行特征值分解和SVD分解相关笔记
  18. 淘宝搜索功能测试用例
  19. dt.Select()
  20. 预备作业02 : 体会做中学(Learning By Doing)

热门文章

  1. 为什么很多互联网公司喜欢招应届毕业生?
  2. 装机配置相关---激活win7旗舰版 office
  3. 网易有道词典识别不了adobe打开的pdf
  4. 【跨域】springBoot + VUE解决跨域问题几种处理方案
  5. 超级计算机运存多少,6GB内存到底能开多少个APP?实测告诉你最终答案
  6. GitLab实现CICD自动化部署
  7. 闵行区电动自行车上牌地址
  8. 共享电动车风云再起,市场如何才能有序?
  9. android跳到自带浏览器打开pdf
  10. 如何进行航拍全景摄影(上)