post 有道

这篇博客探讨了如何使用Python的urllib和Requests库来实现有道翻译的需求。在需求一中,通过urllib,强调了urlencode转换字典、字节型数据的使用以及响应的json格式。而在需求二中,利用Requests库的便利性,提到了在处理“安全验证”时headers和Cookie的重要性。
摘要由CSDN通过智能技术生成
需求一:通过urllib获取有道翻译。

注意:
1.urllib.parse.urlencode( ),将字典里面所有的键值转化为格式 (key=value&key=value),并且将中文转码(如:KW=%E9%B1%BC&)。
2.bytes( ),所有的post请求提交的数据类型都是字节型数据。
3.响应返回的是json,是Response Header里的Content-Type;application/json; charset=utf-8的原因吗。
4.headers视情况传入。有时headers还必须包含Cookie。

import urllib.request
import urllib.parse
import json

content = input("输入需要翻译的内容:")
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
data = {"i": content,"from": "AUTO","to":"AUTO","smartresult":"dict","client":"fanyideskweb","salt":"15882906784367","sign":"4bd543e74523f498e67e0aa864abb845","ts":"1588290678436","bv":"acc97416ef67184f42e5a4a03c3d52ab","doctype":"json","version":"2.1","keyfrom":"fanyi.web","action":"FY_BY_CLICKBUTTION"}

data = urllib.parse.urlencode(data)
data = bytes(data,'utf-8')

req = urllib.request.Request(url,data=data)
res = urllib.request.urlopen(req)
html = res.read().decode("utf-8")
# 返回:{"type":"ZH_CN2EN","errorCode":0,"elapsedTime":0,"translateResult":[[{"src":"鱼","tgt":"fish"}]]}
html_dict = json.loads(html)
result = html_dict["translateResult"][0][0]["tgt"]
print(result)
需求二:通过Requests获取有道翻译,requests是一个强大的三方库。

1.headers可以视情况加入post()参数中,如果碰到“安全验证”,则需要headers中加入Cookie。

import requests
import json
content = input("输入需要翻译的内容:")
data = {"i": content,"from": "AUTO","to":"AUTO","smartresult":"dict","client":"fanyideskweb","salt":"15882906784367","sign":"4bd543e74523f498e67e0aa864abb845","ts":"1588290678436","bv":"acc97416ef67184f42e5a4a03c3d52ab","doctype":"json","version":"2.1","keyfrom":"fanyi.web","action":"FY_BY_CLICKBUTTION"}
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'

res = requests.post(url,data=data) # <class 'requests.models.Response'> <Response [200]>
res.encoding = "utf-8"
html = res.text
html_dict = json.loads(html)
result = html_dict ['translateResult'][0][0]['tgt']
print(result)

就代码而言,requests比urllib少了请求之前的编码,实例化请求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: LabVIEW是一种编程语言,也是一种开发环境。它提供了一种图形化的编程方式,使得工程师和科学家能够更容易地实现复杂的控制和测量应用程序。在LabVIEW中,Post是一个功能丰富的工具箱,它可以帮助程序员们实现并行化任务和多线程编程。而有道翻译是一款翻译软件,它可以帮助用户把一种语言翻译成另一种语言。这两个工具在不同的领域都有自己的应用。通过把它们结合起来使用,可以为不同国家和地区的用户提供更好的LabVIEW使用体验,使得更多的人能够了解和学习LabVIEW,从而促进科技创新和应用发展。 ### 回答2: LabVIEW是美国国家仪器公司(NI)开发的一款流程图编程语言与开发环境。它是一款可视化编程软件,用户不需要编写程序代码,只需要通过拖拽图形化函数块组合而成的流程图来搭建程序。LabVIEW被广泛应用于控制系统、自动化、数据采集、仪器仪表、机器视觉等领域。LabVIEW Post是LabVIEW的一个功能模块,它可以用来发布LabVIEW应用程序并帮助用户打包和部署程序。当用户使用LabVIEW Post来发布应用程序时,它会自动将应用程序打包成可执行文件或安装程序,并自动处理所有的依赖关系和支持库。这样一来,用户就可以将应用程序方便地部署到目标计算机上,并且不需要担心版本兼容性或其他问题。因此,LabVIEW Post是LabVIEW开发过程中非常重要和实用的一个功能模块,它可以帮助用户简化应用程序的部署和安装过程。 ### 回答3: LabVIEW Post指的是一种用于系统调试和故障排除的工具,它可以帮助工程师快速定位和解决问题。这个工具主要用于实时的数据采集和数据分析,通过实时监测系统状态,可以及时发现潜在问题并采取相应的措施,从而保证系统的可靠性和稳定性。 LabVIEW Post在物联网、工业自动化、机器人、航空航天、汽车和医疗等领域都得到了广泛应用。它具备强大的数据分析和可视化功能,可以在整个开发周期内实现数据管理和分析。此外,LabVIEW Post还支持多种数据协议和格式,如TCP/IP、UDP、CAN、RS-232等,能够实现与多种设备的通信和数据交换。 有道翻译,则是一款提供在线翻译服务的平台,它支持多国语言互译,并且功能丰富、操作简便、翻译质量高等特点。通过将LabVIEW Post有道翻译相结合,在国际合作和交流中可以更加轻松便捷地进行技术沟通和翻译工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值