博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python调用有道词典翻译
阅读量:5891 次
发布时间:2019-06-19

本文共 1790 字,大约阅读时间需要 5 分钟。

Python调用有道词典翻译

分析

图片描述

翻译按钮

点击翻译按钮,查看网络请求,如图

图片描述
共有四个网络请求,通过分析,查看返回的信息,显然第一个是真正的翻译请求,具体信息如下:
图片描述
如图所示,我们真正关注的是请求参数,在这么多的参数当中,其中,i是需要翻译的词语,通过对多个翻译请求分析知道,from是翻译原文语言,to是翻译的目标语言,剩下的除了saltsign之外的都是固定的,因此,现在问题是saltsign是怎么来的

前端代码

通过前端的断点分析,找到发送网络请求的代码,具体如下:

图片描述
显然,salt是一个时间戳加上随机数得到"" + ((new Date).getTime() + parseInt(10 * Math.random(), 10))sign是一个md5加密的字符串,显然,只有模拟出这两个参数就可以了

代码

# -*- coding: UTF-8 -*-import hashlibimport randomimport requestsimport times = requests.Session()m = hashlib.md5()class Dict:    def __init__(self):        self.headers = {            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0',            'Referer': 'http://fanyi.youdao.com/',            'contentType': 'application/x-www-form-urlencoded; charset=UTF-8'        }        self.url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule&sessionFrom='        self.base_config()    def base_config(self):        """        设置基本的参数,cookie        """        s.get('http://fanyi.youdao.com/')    def translate(self):        i = '你好'        salf = str(int(time.time() * 1000) + random.randint(0, 9))        n = 'fanyideskweb' + i + salf + "rY0D^0'nM0}g5Mm1z%1G4"        m.update(n.encode('utf-8'))        sign = m.hexdigest()        data = {            'i': i,            'from': 'AUTO',            'to': 'AUTO',            'smartresult': 'dict',            'client': 'fanyideskweb',            'salt': salf,            'sign': sign,            'doctype': 'json',            'version': "2.1",            'keyfrom': "fanyi.web",            'action': "FY_BY_DEFAULT",            'typoResult': 'false'        }        resp = s.post(self.url, headers=self.headers, data=data)        return resp.json()dic = Dict()resp = dic.translate()print(resp)

项目地址:

QQ交流群: 173318043

转载地址:http://emfsx.baihongyu.com/

你可能感兴趣的文章
交换机SPAN功能配置
查看>>
html 表单
查看>>
流氓软件捆绑IE代理无法上网解决办法
查看>>
大数据开发学习之Hive的动态分区
查看>>
mybatis
查看>>
序列、视图、索引(面试看这个就GO了)
查看>>
JSON 与 JS 对象的区别与对比
查看>>
Python学习笔记__6.4章 获取对象信息
查看>>
第九单元 oppenssh-server
查看>>
网络工程师成长日记320-西安奥林巴斯项目回忆录
查看>>
自动化运维工具介绍(第一章)
查看>>
Easy Touch Controls 组件运用
查看>>
Java的新项目学成在线笔记-day8(二)
查看>>
VMware vSphere 5.5 把新增主机加入已配LAG的分布式交换机端口组
查看>>
解决P2P键盘不能用
查看>>
字符串的处理以及相关知识整理
查看>>
php报错:
查看>>
查看Linux并发连接数
查看>>
Python 读取目录、文件
查看>>
代码质量检查平台Sonar环境搭建说明
查看>>