1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 超简单爬虫使用requests模块+有道云翻译 python实现翻译小功能

超简单爬虫使用requests模块+有道云翻译 python实现翻译小功能

时间:2023-11-14 10:04:29

相关推荐

超简单爬虫使用requests模块+有道云翻译 python实现翻译小功能

前言

最近隔壁小张找到我

“老王,最近我在学英语,不想想再打开网页翻译了,太麻烦了一直要开着网页”

“那你可以下载客户端吗,不是挺方便的嘛?”

“老王,我家电脑你又不是不知道,本来就是老款,这么多软件开着不是卡升天了?”

“那行,超简单利用python的requests模块利用网易有道云制作一个翻译小功能”

准备

python python官方网址:/ 安装python requests模块,json模块 requests模块 命令行窗口下输入 pip install requestsjson模块 python自带不需要安装

搞快点

需要在有道翻译中查找我们爬虫所需要的url以及post表单

打开有道云词典翻译网页,F12进入开发者模式,点击NetworkXHR

输入小张学习资料并点击翻译,查看此时发现一条有请求

点击请求,右侧会弹出菜单栏,我们重点就看Headers以及Preview

先点击Headers查看.

General中的RequestURL就是我们需要的待请求url下拉后可以看到Form Data中的所有数据就是我们需要的post表单

由此我们获得了

url:/translate_o?smartresult=dict&smartresult=rulepost表单:i: 日本经典动作片from: AUTOto: AUTOsmartresult: dictclient: fanyideskwebsalt: 15975896029404sign: af9c79eff66d919c9ed6f1a526781fcalts: 1597589602940bv: 9ef72dd6d1b2c04a72be6b706029503adoctype: jsonversion: 2.1keyfrom: fanyi.webaction: FY_BY_REALTlME

接下来看Preview,这是网页返回的json格式数据这其中就包含了我们需要的翻译,可以简单的理解为字典,但是需要用json模块来解码.

有道云返回的json格式是词典嵌套列表的这样一个格式

那么从这里面我们可以得到所需要的翻译在返回的词典中是这样的一个位置

trans_dict["translateResult"][0][0]["tgt"]

接下来就是代码环节了想想我们的流程

使用input输入需要翻译的文本提交post请求到url接受返回的json数据解析json数据提取出翻译结果打印翻译结果外面套一个循环以及加上退出选项

import jsonimport requests# 7.循环while True:# 1.控制台获取等待翻译文本content=input("输入中文:")# 8.退出if content == "":print("输个什么玩意?爷退了")exit()# 2.设定待请求url# 有道云坏的很加了个_o防止爬虫# url="/translate_o?smartresult=dict&smartresult=rule"url="/translate?smartresult=dict&smartresult=rule"# 3.建立post表单post_form={"i": content,"from": "AUTO","to": "AUTO","smartresult": "dict","client": "fanyideskweb","salt": "15975710195066","sign": "1c7317b4699d018e5ae031c0077d7b80","lts": "1597571019506","bv": "9ef72dd6d1b2c04a72be6b706029503a","doctype": "json","version": "2.1","keyfrom": "fanyi.web","action": "FY_BY_REALTlME",}# 4.提交post请求# response接受返回的json格式response=requests.post(url, data = post_form)# 5.接受相应结果,解析提取trans_json = response.texttrans_dict=json.loads(trans_json)trans_text=trans_dict["translateResult"][0][0]["tgt"]# 6.打印翻译结果print("翻译结果:%s" % trans_text)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。