资讯专栏INFORMATION COLUMN

Python调用有道词典翻译

CarlBenjamin / 1313人阅读

摘要:调用有道词典翻译分析有道翻译官网翻译按钮点击翻译按钮,查看网络请求,如图共有四个网络请求,通过分析,查看返回的信息,显然第一个是真正的翻译请求,具体信息如下如图所示,我们真正关注的是请求参数,在这么多的参数当中,其中,是需要翻译的词语,通过

Python调用有道词典翻译 分析 有道翻译官网

翻译按钮

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

共有四个网络请求,通过分析,查看返回的信息,显然第一个是真正的翻译请求,具体信息如下:

如图所示,我们真正关注的是请求参数,在这么多的参数当中,其中,i是需要翻译的词语,通过对多个翻译请求分析知道,from是翻译原文语言,to是翻译的目标语言,剩下的除了saltsign之外的都是固定的,因此,现在问题是saltsign是怎么来的

前端代码

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

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

代码
# -*- coding: UTF-8 -*-
import hashlib
import random
import requests
import time


s = 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)

项目地址: 基于Python的爬虫
QQ交流群: 173318043

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44494.html

相关文章

  • 50 行代码,实现中英文翻译

    摘要:尤其是对于程序员来说,好的编程资料都是来自英文文档。甚至你借助今天的代码,也可以自己开发个小型翻译软件。有道词典接口今天的翻译程序是借用有道翻译的接口来实现的。相应的输入英文也可以翻译成中文。 阅读文本大概需要 4.2 分钟。 现在的时代,越来越看重英语能力。如果你懂得英语,你会接触到更大的世界,你会发现更多的信息。尤其是对于程序员来说,好的编程资料都是来自英文文档。那些国内的翻译的版...

    tunny 评论0 收藏0
  • 玩转TensorFlow Lite:有道云笔记实操案例分享

    摘要:如何进行操作本文将介绍在有道云笔记中用于文档识别的实践过程,以及都有些哪些特性,供大家参考。年月发布后,有道技术团队第一时间跟进框架,并很快将其用在了有道云笔记产品中。微软雅黑宋体以下是在有道云笔记中用于文档识别的实践过程。 这一两年来,在移动端实现实时的人工智能已经形成了一波潮流。去年,谷歌推出面向移动端和嵌入式的神经网络计算框架TensorFlowLite,将这股潮流继续往前推。Tens...

    Hanks10100 评论0 收藏0

发表评论

0条评论

CarlBenjamin

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<